Установка и настройка OrientDB на Ubuntu 16.04
Ubuntu | Комментировать запись
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: NoSQL, OrientDB, Ubuntu 16.04