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

В иструкции описана установки и настройка документо- и графо-ориентированной СУБД OrientDB.

Что это такое?

OrientDB - это система управления базами данных NoSQL с открытым исходным кодом, написанная на Java. Это многомодельная база данных, одновременно поддерживающая графы, документы, ключ/значения и объектные модели.

Первоначальные требования

  • Для стабильной работы СУБД рекомендуемое количество оперативной памяти 2GB, но даже при 512Mb она будет работать;
  • СУБД написана на Java, поэтому для установки и работы необходимо иметь JRE.

Установка

Подключитесь к виртуальному серверу по SSH и обновите локальную базу пакетов:

sudo apt-get update

С помощью утилиты wget загрузите последнюю версию СУБД, посмотреть актуальную версию можно на сайте разработчиков:

wget -O orientdb-community-2.2.20.tar.gz http://orientdb.com/download.php?file=orientdb-community-2.2.20.tar.gz&os=linux

Разархивируйте скачанный архив с помощью утилиты tar:

tar -zxvf orientdb-community-2.2.20.tar.gz

Переместите скачанные файлы в директорию /opt, в которой обычно находятся сторонние установленные пакеты:

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

OrientDB теперь установлена.

Настройка OrientDB для использования меньшего объема RAM

По умолчанию демон OrientDB требует не менее 2 ГБ RAM и не может запуститься, если это число меньше. При неудачном запуске ошибка выглядит следующим образом:

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.

В конфигурационных файлах можно изменить значение особых параметров, что позволит использовать виртуальный сервер минимальной мощности (например 512 Mb RAM).

С помощью текстового редактора, например vi, откройте конфигурационный файл 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 ГБ.

Вы можете установить новые значения, которые меньше реального объема оперативной памяти. Убедитесь, что на Xms выделено не менее 128 МБ, в противном случае OrientDB вообще не запустится. В нашем примере мы установим начальное и максимальное объем пула на 128 Mb и 256 Mb соответственно:

# ORIENTDB memory options, default to 2GB of heap.

if [ -z "$ORIENTDB_OPTS_MEMORY" ] ; then
ORIENTDB_OPTS_MEMORY="-Xms128m -Xmx256m"
fi

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

Запуск OrientDB

Перейдите в каталог установки:

cd /opt/orientdb

Запустите сервер с помощью следующей команды:

sudo bin/server.sh

При первом запуске вам будет необходимо задать пароль администратора root:

Root password [BLANK=auto generate it]: **********
Please confirm the root password: **********

Часть системных сообщений, сгенерированных при запуске сервера СУБД:

2018-10-26 12:51:43:904 INFO  [OVariableParser.resolveVariables] Error on resolving property: distributed [orientechnologies]
2018-10-26 12:51:43:906 WARNI Authenticated clients can execute any kind of code into the server by using the following allowed languages: [sql] [OServerSideScriptInterpreter]
2018-10-26 12:51:43:909 INFO  OrientDB Studio available at http://111.111.111.111:2480/studio/index.html [OServer]
2018-10-26 12:51:43:909 INFO  OrientDB Server is active v2.2.20 (build 76ab59e72943d0ba196188ed100c882be4315139). [OServer]

Эти строки означают что, OrientDB запущен в вашем текущем терминале. Проверьте, что сервер прослушивает соответствующие порты.

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

sudo netstat -plunt | grep -i listen

Результат будет выглядеть подобным образом:

cp         0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1076/sshd       
tcp6       0      0 :::2480                 :::*                    LISTEN      8394/java       
tcp6       0      0 :::22                   :::*                    LISTEN      1076/sshd       
tcp6       0      0 :::2424                 :::*                    LISTEN      8394/java  

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

Консоль OrientDB - это интерфейс командной строки для работы с приложением. Чтобы запустить ее, введите:

sudo /opt/orientdb/bin/console.sh

На экране отобразится следующее:

OrientDB console v.2.2.20 (build 76ab59e72943d0ba196188ed100c882be4315139) https://www.orientdb.com
Type 'help' to display all the supported commands.
Installing extensions for GREMLIN language v.2.6.0
orientdb> 

Теперь подключитесь к экземпляру сервера. Требуемый пароль - тот, который вы указали при первом запуске сервера на предыдущем шаге:

orientdb> connect remote:127.0.0.1 root <пароль>

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

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

Для выхода введите exit:

orientdb {server=remote:127.0.0.1/}> exit

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

На данный момент OrientDB установлен, но это всего лишь набор скриптов на сервере.

С помощью сочетания клавиш CTRL+C остановите работу OrientDB.

Создайте пользователя системы, от имени которого будет работать СУБД. В нашем примере мы создаем пользователя orientdb, данная команда также создаст группу orientdb:

sudo useradd -r orientdb -s /sbin/nologin

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

sudo chown -R orientdb:orientdb /opt/orientdb

Откройте следующий файл для редактирования:

sudo vi /opt/orientdb/bin/orientdb.sh

Найдите следующие параметры:

ORIENTDB_DIR="YOUR_ORIENTDB_INSTALLATION_PATH"
ORIENTDB_USER="USER_YOU_WANT_ORIENTDB_RUN_WITH"

Замените значения на следующие:

ORIENTDB_DIR="/opt/orientdb"
ORIENTDB_USER="orientdb"

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

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

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

Настройка скрипта Systemd

Служба Systemd отвечает за запуск и остановку OrientDB. Скопируйте следующий конфигурационный файл в каталог /etc/systemd/system:

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

Откройте его для редактирования:

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

Замените значения параметров User, Group и ExecStart, как показано в примере ниже:

User=orientdb
Group=orientdb
ExecStart=/opt/orientdb/bin/server.sh

Выполните следующие команды, чтобы изменения вступили в силу:

sudo systemctl daemon-reload
sudo systemctl start orientdb

И разрешите запуск при загрузке:

sudo systemctl enable orientdb

Убедитесь, в каком состоянии находится СУБД:

sudo systemctl status orientdb

Результат:

● orientdb.service - OrientDB Server
   Loaded: loaded (/etc/systemd/system/orientdb.service; enabled; vendor preset: enabled)
   Active: active (running) since Fri 2018-10-26 13:30:35 MSK; 36s ago
 Main PID: 8606 (java)
   CGroup: /system.slice/orientdb.service
           └─8606 java -server -Xms2G -Xmx2G -Djna.nosys=true -XX:+HeapDumpOnOutOfMemoryError -XX:MaxDirectMemorySize=512g -Djava.awt.headless=

Oct 26 13:30:36 Ubuntu1604x64 server.sh[8606]: 2018-10-26 13:30:36:792 INFO  Listening binary connections on 0.0.0.0:2424 (protocol v.36, socke
Oct 26 13:30:36 Ubuntu1604x64 server.sh[8606]: 2018-10-26 13:30:36:795 INFO  Listening http connections on 0.0.0.0:2480 (protocol v.10, socket=

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

Примечание: не забудьте открыть порт 2480 для подключения из браузера.

iptables -A INPUT -p tcp --dport 2480 -j ACCEPT
iptables-save

Чтобы подключиться к OrientDB Studio, перейдите в браузере по адресу:
http://<IP-адрес_сервера>:2480

Например:
http://111.111.111.111:2480

После загрузки страницы вы увидите экран входа в систему, введите имя пользователя и пароль.

Ввод пользователя и пароля

Рабочая область будет выглядеть следующим образом:

Рабочая область OrientDB

На этом установка и настройка OrientDB закончена.

 


Средняя оценка: 5,0, всего оценок: 1