介绍
OrientDB是一个多模型NoSQL数据库,支持图形和文档数据库。它是一个Java应用程序,可以在任何操作系统上运行。它也完全支持ACID,支持多主复制,可轻松实现水平扩展。
在本文中,您将在Ubuntu 16.04服务器上安装和配置OrientDB的最新社区版。没有服务器的用户可以购买和使用腾讯云服务器或者直接在腾讯云实验室Ubuntu服务器上机安装和配置OrientDB 。
准备
要学习本教程,您需要:
- 一台Ubuntu 16.04服务器,理想情况下具有至少2GB的RAM,但即使是512MB也能正常工作。
- 一个可以使用sudo命令的非root用户。
- 安装了Java,您可以按照腾讯云Java安装指南的JDK 8步骤进行安装。
第1步 - 下载和安装OrientDB
在此步骤中,我们将下载最新的OrientDB社区版,并将其安装到/opt
目录中,该目录是在Linux中安装第三方应用程序的传统位置。
在开始之前,请确保系统上的软件包是最新的。
代码语言:txt复制$ sudo apt-get update
下载最新版本的OrientDB社区,即版本2.2.20,但您可以检查项目的下载页面以获取最新版本,并在下面的命令中更改版本号以匹配。
代码语言:txt复制$ wget -O orientdb-community-2.2.20.tar.gz http://orientdb.com/download.php?file=orientdb-community-2.2.20.tar.gz&os=linux
下载的tarball已经包含您在系统上运行OrientDB所需的预编译二进制文件,因此您现在需要做的就是解压缩它。
代码语言:txt复制$ tar -zxvf orientdb-community-2.2.20.tar.gz
这些文件被移动到一个名为orientdb-community-2.2.20
的目录中。现在您需要将其移动到目录/opt
中,并在此过程中将其重命名为orientdb
。
$ sudo mv ~/orientdb-community-2.2.20 /opt/orientdb
OrientDB现已安装。如果您使用的是内存受限的服务器,则可以将OrientDB配置为在下一步中使用较少的RAM。您也可以继续执行步骤3以启动服务器。
第2步 - 配置OrientDB以减少使用RAM(可选)
默认情况下,OrientDB后台程序期望至少有2 GB的RAM可用,并且如果找不到则无法启动。如果你尝试启动它,你会看到这样的错误:
代码语言:txt复制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的服务器。它是server.sh
文件中一个设置的函数,可以对其进行更改,以便后台程序可以凭借更少的RAM启动。
使用nano
或您喜欢的文本编辑器打开文件。
$ sudo nano /opt/orientdb/bin/server.sh
然后滚动到包含此代码块中显示的代码块的部分:
代码语言:txt复制/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虚拟机的初始和最大内存分配池。默认情况下,它们设置为2GB。您可以设置小于分配给服务器的RAM量的新值,但要确保Xms至少为128MB,否则OrientDB将无法启动。例如,下面的值分别将ram的初始和最大量设置为128MB和256MB。
代码语言:txt复制/opt/orientdb/bin/server.sh
# ORIENTDB memory options, default to 2GB of heap.
if [ -z "$ORIENTDB_OPTS_MEMORY" ] ; then
ORIENTDB_OPTS_MEMORY="-Xms128m -Xmx256m"
fi
保存并关闭文件。在下一步中,您将启动OrientDB。
第3步 - 启动服务器
现在二进制文件准备好了,您可以选择将服务器配置为使用更少的RAM,现在可以启动服务器并连接到控制台。
导航到安装目录。
代码语言:txt复制- cd /opt/orientdb
然后启动服务器。
代码语言:txt复制- sudo bin/server.sh
首次启动服务器时,系统会提示您为root用户帐户指定密码。这是一个内部OrientDB帐户,用于访问服务器,例如OrientDB Studio,这是用于管理OrientDB的基于Web的界面。如果您未指定密码,将自动生成一个密码。但是在系统提示的时候最好自己指定一个。
启动服务器生成的部分输出告诉您服务器和OrientDB Studio正在侦听的端口。
代码语言:txt复制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.20 (build UNKNOWN@r98dbf8a2b8d43e4af09f1b12fa7ae9dfdbd23f26; 2017-02-02 07:01:26 0000).
[OServer]
当您看到这个时,OrientDB正在您当前的终端中运行。让我们确认服务器正在侦听相应的端口。打开第二个终端并通过SSH连接到同一服务器。
代码语言:txt复制$ ssh sammy@your_server_ip
然后,在该第二个终端中,使用以下命令确认服务器正在侦听端口2424(用于二进制连接)和2480(用于HTTP连接)。
代码语言:txt复制$ sudo netstat -plunt | grep -i listen
输出应包含对两个端口号的引用,如下所示:
代码语言:txt复制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
现在该服务器已启动并且您已验证它正在运行,您将在下一个第二个终端中连接到OrientDB控制台。
第4步 - 连接到控制台
OrientDB控制台是用于处理应用程序的命令行界面。要启动它,请键入:
代码语言:txt复制$ sudo /opt/orientdb/bin/console.sh
您将看到以下内容:
代码语言:txt复制OrientDB console v.2.2.20 (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>
现在,连接到服务器所需的密码是您在上一步中首次启动服务器时指定的密码。
代码语言:txt复制orientdb> connect remote:127.0.0.1 root root-password
如果成功连接,您将看到此输出。
代码语言:txt复制Connecting to remote Server instance [remote:127.0.0.1] with user 'root'...OK
orientdb {server=remote:127.0.0.1/}>
如果不这样做,请仔细检查您是否正确输入了root密码,并且OrientDB仍在第一个终端中运行。
准备好后,键入exit
第二个终端以退出OrientDB提示。
orientdb {server=remote:127.0.0.1/}> exit
您刚刚安装了OrientDB,手动启动它并连接到它。这意味着OrientDB正在运行,但这也意味着您需要在重新启动服务器时手动启动它。在接下来的几个步骤中,我们将配置和设置OrientDB,就像服务器上的任何其他后台程序一样运行。
第5步 - 将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用户。该命令还将创建orientdb组:
代码语言:txt复制$ sudo useradd -r orientdb -s /sbin/nologin
将OrientDB目录和文件的所有权授予新创建的OrientDB用户和组。
代码语言:txt复制$ sudo chown -R orientdb:orientdb /opt/orientdb
现在让我们对orientdb.sh脚本进行一些更改。
代码语言:txt复制$ sudo nano /opt/orientdb/bin/orientdb.sh
首先,我们需要将它指向正确的安装目录,然后告诉它应该运行哪个用户。因此,请在文件顶部查找以下两行:
代码语言:txt复制/opt/orientdb/bin/orientdb.sh
. . .
# You have to SET the OrientDB installation directory here
ORIENTDB_DIR="YOUR_ORIENTDB_INSTALLATION_PATH"
ORIENTDB_USER="USER_YOU_WANT_ORIENTDB_RUN_WITH"
. . .
并将其分别更改为/opt/orientdb
和orientdb
。
代码语言:txt复制/opt/orientdb/bin/orientdb.sh
# You have to SET the OrientDB installation directory here
ORIENTDB_DIR="/opt/orientdb"
ORIENTDB_USER="orientdb"
保存并关闭文件。
然后修改服务器配置文件的权限,以防止未经授权的用户读取它。
代码语言:txt复制$ sudo chmod 640 /opt/orientdb/config/orientdb-server-config.xml
您可以在腾讯云社区Linux权限教程中了解有关文件权限的更多信息。
在下一步中,我们将配置后台程序,使其由Systemd(服务管理器)控制。
第6步 - - 安装Systemd启动脚本
OrientDB附带了一个Systemd
服务描述符文件,该文件将负责启动和停止服务。该文件必须复制到/etc/systemd/system
目录中。
$ sudo cp /opt/orientdb/bin/orientdb.service /etc/systemd/system
该文件中有一些我们需要修改的设置,因此请将其打开以进行编辑。
代码语言:txt复制$ sudo nano /etc/systemd/system/orientdb.service
修改Service下的User,Group和ExecStart变量以匹配您的安装。您可以在步骤5中设置用户和组(如果您逐步执行步骤,则这两者都是orientdb)。ExecStart指定脚本的路径,如果您按照本书编写的那样操作,则应该从该/opt/orientdb脚本开始。
代码语言:txt复制/etc/systemd/system/orientdb.service
. . .
[Service]
User=orientdb
Group=orientdb
ExecStart=/opt/orientdb/bin/server.sh
保存并关闭文件。
然后运行以下命令重新加载所有单元。
代码语言:txt复制$ sudo systemctl daemon-reload
准备好了一切,您现在可以启动OrientDB服务了。
代码语言:txt复制$ sudo systemctl start orientdb
并确保它将在启动时启动。
代码语言:txt复制$ sudo systemctl enable orientdb
通过检查进程状态确认它确实启动了。
代码语言:txt复制$ sudo systemctl status orientdb
代码语言:txt复制● 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
. . .
如果服务器未启动,请在输出中查找线索。在下一步中,您将学习如何连接到应用程序的Web用户界面OrientDB Studio。
第7步 - 连接到OrientDB Studio
OrientDB Studio是用于管理OrientDB的Web界面。如果要启用它进行测试,则需要向防火墙添加规则。默认情况下,OrientDB studio会侦听端口2480,因此如果您在服务器上配置了防火墙,则需要允许访问端口2480。
代码语言:txt复制$ sudo ufw allow 2480
然后,重启UFW。
代码语言:txt复制$ sudo systemctl restart ufw
要连接到OrientDB Studio,请用您的浏览器访问http://your_server_ip:2480
。页面加载后,您将看到登录屏幕。您可以使用之前设置的密码以root身份登录。您也可以选择GratefulDeadConcerts
数据库和日志使用附带OrientDB(默认用户帐户的一个管理员,用户或编写员)。
结论
您刚刚在Ubuntu 16.04服务器上安装了OrientDB的Community版本,自定义了其配置,并将其设置为由systemd
管理的守护程序。
参考文献:《How To Install and Configure OrientDB on Ubuntu 16.04》