Установка и настройка OrientDB на Ubuntu 16.04

OrientDB – это многомодельная база данных NoSQL, поддерживающая графики и документальные БД. Это приложение Java можно использовать в любой системе. OrientDB также предоставляет полную поддержку ACID и репликаций master-master, что упрощает горизонтальное масштабирование.

Данное руководство поможет установить и настроить последний релиз OrientDB (Community edition) на сервер Ubuntu 16.04.

Требования

  • Сервер Ubuntu 16.04 (руководство по начальной настройке – здесь).
  • Для идеальной работы нужно 2 Гб RAM (в целом же, БД будет работать и на сервере с 512 Мб).
  • Пользователь с доступом к sudo.
  • Настроенный брандмауэр

1: Загрузка и установка OrientDB

Загрузите последний Community-релиз OrientDB и установите полученный пакет в каталог /opt (в этом каталоге должны храниться все сторонние приложения в Linux).

Обновите индекс пакетов:

sudo apt-get update

Загрузите последнюю версию OrientDB. На данный момент это 2.2.16. Уточнить номер последней версии можно на сайте проекта.

wget http://mkt.orientdb.com/CE-2216-multiOS -O orientdb-community-2.2.16.tar.gz

Загрузите unzip, чтобы распаковать архив.

sudo apt-get install unzip

Загруженный архив содержит предварительно скомпилированные бинарные файлы для запуска OrientDB, потому его нужно просто распаковать в соответствующий каталог.

unzip orientdb-community-2.2.16.tar.gz

Эта команда извлечёт файлы в каталог orientdb-community-2.2.16. Для простоты работы лучше переименовать его.

sudo mv ~/orientdb-community-2.2.16 /opt/orientdb

2: Настройка потребления памяти (опционально)

По умолчанию демон OrientDB использует 2 Гб памяти. Если памяти недостаточно, он не запустится.

ubuntu-orientdb server.sh[1670]: Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000aaaa0000, 1431699456, 0) failed; error='Cannot allocate memory' (errno=12)

ubuntu-orientdb server.sh[1670]: # There is insufficient memory for the Java Runtime Environment to continue.

Чтобы устранить эту ошибку и запустить БД на сервере с небольшим объемом памяти, вы можете изменить один параметр в файле server.sh.

Откройте его в редакторе:

sudo nano /opt/orientdb/bin/server.sh

Найдите следующий раздел:

. . .
# ORIENTDB memory options, default to 2GB of heap.
if [ -z "$ORIENTDB_OPTS_MEMORY" ] ; then
ORIENTDB_OPTS_MEMORY="-Xms2G -Xmx2G"
fi
. . .

Измените значения параметров Xms и Xmx, которые определяют начальный и максимальный объем пула распределения памяти виртуальной машины Java. По умолчанию это 2 Гб.

Вы можете изменить их значения и уменьшить объем памяти, потребляемый OrientDB. При этом Xms должен иметь 128 Мб минимум. Следующие значения устанавливают исходный и максимальный объем памяти в 128 Мб и 256 Мб соответственно.

# ORIENTDB memory options, default to 2GB of heap.
if [ -z "$ORIENTDB_OPTS_MEMORY" ] ; then
ORIENTDB_OPTS_MEMORY="-Xms128m -Xmx256m"
fi

Сохраните и закройте файл.

3: Запуск сервера

Теперь можно запустить сервер и подключиться к консоли. Сначала перейдите в каталог установки:

cd /opt/orientdb

Затем запустите сервер:

sudo bin/server.sh

Помимо прочего, при первом запуске сервера будет предложено выбрать пароль root-пользователя; это внутренний аккаунт OrientDB, необходимый для входа на сервер (к примеру, он используется для получения доступа к OrientDB Studio, веб-интерфейса OrientDB). Если пароль не был указан, он будет сгенерирован автоматически. Однако лучше выбрать его самостоятельно.

Часть вывода при запуске сервера сообщает порты, прослушиваемые сервером и OrientDB Studio:

2017-02-04 19:13:21:306 INFO  Listening binary connections on 0.0.0.0:2424 (protocol v.36, socket=default) [OServerNetworkListener] 2017-02-04 19:13:21:310 INFO  Listening http connections on 0.0.0.0:2480 (protocol v.10, socket=default) [OServerNetworkListener] . . .
2017-02-04 19:13:21:372 INFO  OrientDB Studio available at http://192.168.0.30:2480/studio/index.html [OServer] 2017-02-04 19:13:21:374 INFO  OrientDB Server is active v2.2.16 (build UNKNOWN@r98dbf8a2b8d43e4af09f1b12fa7ae9dfdbd23f26; 2017-02-02 07:01:26+0000).
[OServer]

Теперь база данных OrientDB запущена в текущем терминале. Убедитесь, что сервер прослушивает все необходимые порты.

Откройте второй терминал и подключитесь к серверу:

ssh 8host@your_server_ip

Убедитесь в том, что сервер слушает порт 2424 (бинарные соединения) и 2480 (HTTP-соединения).

sudo netstat -plunt | grep -i listen

В выводе команды должны быть оба порта.

tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1160/sshd
tcp6       0      0 :::2480                 :::*                    LISTEN      2758/java
tcp6       0      0 :::22                   :::*                    LISTEN      1160/sshd
tcp6       0      0 :::2424                 :::*                    LISTEN      2758/java

Теперь с помощью второго терминала можно подключиться к консоли.

4: Подключение к консоли

Запустив сервер, можно подключиться к его консоли. Для этого введите:

sudo /opt/orientdb/bin/console.sh
OrientDB console v.2.2.16 (build UNKNOWN@r98dbf8a2b8d43e4af09f1b12fa7ae9dfdbd23f26; 2017-02-02 07:01:26+0000) www.orientdb.com
Type 'help' to display all the supported commands.
Installing extensions for GREMLIN language v.2.6.0
orientdb>

Теперь подключитесь к серверу. При подключении будет запрошен пароль, выбранный вами при первом запуске сервера.

connect remote:127.0.0.1 root root-password

При успешном подключении вы увидите:

Connecting to remote Server instance [remote:127.0.0.1] with user 'root'...OK
orientdb {server=remote:127.0.0.1/}>

Если подключиться не удалось, убедитесь, что вы правильно указали root-пароль.

Чтобы выйти, введите:

exit

Итак, вы установили OrientDB, вручную запустили сервер и подключились к консоли. OrientDB работает должным образом.

Чтобы вам не пришлось запускать OrientDB вручную при каждой загрузке сервера, нужно настроить автозагрузку БД.

5: Настройка демона OrientDB

OrientDB работает, но пока что это просто группа сценариев на сервере. Теперь нужно настроить OrientDB как демон. Для этого нужно отредактировать сценарий /opt/orientdb/bin/orientdb.sh и файл /opt/orientdb/config/orientdb-server-config.xml.

Вернитесь в первый терминал и нажмите CTRL+C, чтобы остановить OrientDB. Второй терминал можно закрыть.

Для начала отредактируйте /opt/orientdb/bin/orientdb.sh; он позволяет задать пользователя для запуска OrientDB и указать каталог установки.

Сначала создайте отдельного пользователя для OrientDB (команда также создаст группу orientdb):

sudo useradd -r orientdb -s /sbin/nologin

Передайте права на каталог и файлы OrientDB новому пользователю и группе:

sudo chown -R orientdb:orientdb /opt/orientdb

После этого нужно внести поправки в сценарий orientdb.sh.

sudo nano /opt/orientdb/bin/orientdb.sh

Укажите каталог установки и пользователя, предназначенного для OrientDB.  Для этого нужно найти следующие строки:

. . .
# You have to SET the OrientDB installation directory here
ORIENTDB_DIR="YOUR_ORIENTDB_INSTALLATION_PATH"
ORIENTDB_USER="USER_YOU_WANT_ORIENTDB_RUN_WITH"
. . .

И изменить их так:

# You have to SET the OrientDB installation directory here
ORIENTDB_DIR="/opt/orientdb"
ORIENTDB_USER="orientdb"

Сохраните и закройте файл.

Ограничьте доступ к файлу, чтобы неавторизованные пользователи не смогли прочитать его:

sudo chmod 640 /opt/orientdb/config/orientdb-server-config.xml

Читайте также: Привилегии в Linux: что это и как с этим работать

6: Копирование сценариев

OrientDB предоставляет собственный файл сервиса Systemd, который будет отвечать за запуск и остановку сервиса. Скопируйте его в /etc/systemd/system.

sudo cp /opt/orientdb/bin/orientdb.service /etc/systemd/system

Некоторые параметры в файле нужно исправить.

sudo nano /etc/systemd/system/orientdb.service

Найдите переменные User, Group и ExecStart в разделе Service. Измените их значения, указав данные пользователя orientdb. Переменная ExecStart должна содержать путь к сценарию (если вы следовали руководству, путь начинается с /opt/orientdb):

. . .
[Service] User=orientdb
Group=orientdb
ExecStart=/opt/orientdb/bin/server.sh

Сохраните и закройте файл.

Перезапустите демон:

sudo systemctl daemon-reload

Теперь можно запустить сервис OrientDB:

sudo systemctl start orientdb

и добавить его в автозагрузку:

sudo systemctl enable orientdb

Убедитесь, что сервис запустился. Для этого запросите состояние процесса:

sudo systemctl status orientdb
orientdb.service - OrientDB Server
Loaded: loaded (/etc/systemd/system/orientdb.service; disabled; vendor preset: enabled)
Active: active (running) since Sat 2017-02-04 20:54:27 CST; 11s ago
Main PID: 22803 (java)
Tasks: 14
Memory: 126.4M
. . .

Если сервис не запустился, в выводе вы найдёте рекомендации по отладке и устранению ошибок.

7: Подключение к OrientDB Studio

OrientDB Studio – это веб-интерфейс для управления OrientDB, с помощью которого можно протестировать и повысить безопасность базы данных.

Читайте также: Безопасность OrientDB на сервере Ubuntu 16.04

По умолчанию OrientDB Studio прослушивает порт 2480. Разблокируйте этот порт в брандмауэре:

sudo ufw allow 2480

Перезапустите UFW.

sudo systemctl restart ufw

Чтобы подключиться к этому интерфейсу, откройте в браузере ссылку:

http://server-ip-address:2480

На экране появится форма входа. Вы можете войти как root.

Войдите как пользователь root (укажите установленный ранее пароль). Вы также можете выбрать БД GratefulDeadConcerts и подключиться к OrientDB с помощью одного из стандартных аккаунтов (admin, reader или writer).

Заключение

Теперь база данных OrientDB установлена на сервер и полностью готова к использованию.

Более подробную информацию и официальные ссылки для OrientDB можно найти в документации приложения.

Читайте также:

Tags: , ,

Добавить комментарий