如何在Ubuntu 16.04上安装和配置OrientDB

OrientDB是支持图形和文档数据库的多模型NoSQL数据库。它是一个Java应用程序,可以在任何操作系统上运行。它也完全支持ACID投诉,支持多主复制,允许轻松的水平缩放。在本文中,您将在Ubuntu 16.04服务器上安装和配置OrientDB的最新社区版本。

介绍

OrientDB是支持图形和文档数据库的多模型NoSQL数据库。 它是一个Java应用程序,可以在任何操作系统上运行。 它也完全支持ACID投诉,支持多主复制,允许轻松的水平缩放。

在本文中,您将在Ubuntu 16.04服务器上安装和配置OrientDB的最新社区版本。

先决条件

要遵循本教程,您将需要:

第1步 - 下载和安装OrientDB

在此步骤中,我们将下载最新的OrientDB社区版本,并将其安装到/opt目录中,该目录是在Linux中安装第三方应用程序的传统位置。

在开始之前,请确保系统上的软件包是最新的。

sudo apt-get update

Net,下载最新版本的OrientDB社区。 在发布时,这是2.2.16,但是您可以检查项目的下载页面以获取最新版本,并在下面的命令中更改版本号以进行匹配。

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

下载unzip即可unzip tarball。

sudo apt-get install unzip

下载的tarball包含您需要在系统上运行OrientDB的预编译二进制文件,因此您现在需要执行的所有操作都将解压缩。

unzip orientdb-community-2.2.16.tar.gz

这些文件被提取到名为orientdb-community- 2.2.16 现在,您需要将其移动到/opt目录中,将其重命名为orientdb中的orientdb

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

OrientDB已安装。 如果您使用内存受限服务器,则可以在下一步中配置OrientDB使用较少的RAM。 否则,您可以转到第3步启动服务器本身。

第2步 - 配置OrientDB使用较少的RAM(可选)

默认情况下,OrientDB守护程序期望至少有2 GB的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的服务器。 它是在server.sh文件中的一个设置的功能,可以更改,以便守护程序可以从更少的RAM开始。

nano或您喜欢的文本编辑器打开文件。

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

然后滚动到包含该代码块中显示的代码块的部分:

/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
. . .

您需要更改的值为XmsXmx ,它们指定Java虚拟机的初始和最大内存分配池。 默认情况下,它们设置为2GB。

您可以设置小于分配给服务器的RAM数量的新值,但请确保Xms至少为128 MB或OrientDB将无法启动。 例如,下面的值将ram的初始和最大数量分别设置为128MB和256MB。

/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,现在可以启动服务器并连接到控制台。

导航到安装目录。

cd /opt/orientdb

然后启动服务器。

sudo bin/server.sh

首次启动服务器时,系统将提示您指定root用户帐户的密码。 这是一个内部OrientDB帐户,将用于访问服务器,如OrientDB Studio,用于管理OrientDB的基于Web的界面。 如果不指定密码,将自动生成。 但是,最好自己指定一个,所以在出现提示时这样做。

从启动服务器生成的输出的一部分告诉您服务器和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连接到同一个服务器。

ssh sammy@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

现在该服务器启动并且您已经验证它正在运行,接下来将连接到第二个终端中的OrientDB控制台。

第4步 - 连接到控制台

OrientDB控制台是用于处理应用程序的命令行界面。 要启动它,请键入:

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密码,并将OrientDB仍在第一个终端中运行。

准备好后,在第二个终端中键入exit退出OrientDB提示符。

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组:

sudo useradd -r orientdb -s /sbin/nologin

将OrientDB目录和文件的所有权归给新创建的OrientDB用户和组。

sudo chown -R orientdb:orientdb /opt/orientdb

现在让我们对orientdb.sh脚本进行一些修改。

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

首先,我们需要指向正确的安装目录,然后告诉它应该运行哪个用户。 所以在文件顶部找到以下两行:

/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。

/opt/orientdb/bin/orientdb.sh
# 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权限教程中了解有关文件权限的更多信息。

在下一步中,我们将配置守护程序,使其由服务管理器Systemd控制

第6步 - 安装Systemd启动脚本

OrientDB附带一个Systemd服务描述符文件,负责启动和停止服务。 该文件必须复制到/etc/systemd/system目录中。

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

该文件中有几个设置需要修改,因此打开它进行编辑。

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

修改“服务”下的“ 用户” ,“ 组”和“ ExecStart”变量以匹配您的安装。 您在第5步中设置用户和组(如果您逐字地按照该步骤,则它们都是orientdb )。 ExecStart指定脚本的路径,如果您已经按照本教程的要求,应该以/opt/orientdb

/etc/systemd/system/orientdb.service
. . .

[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
. . .

如果服务器没有启动,请在输出中查找线索。 在下一步中,您将学习如何连接应用程序的Web用户界面OrientDB Studio。

第7步 - 连接到OrientDB Studio

OrientDB Studio是用于管理OrientDB的Web界面。 这对于测试目的来说非常有用,尽管更为安全的做法是限制对它的访问。

如果要启用它进行测试,则需要将规则添加到防火墙。 默认情况下,OrientDB工作室监听端口2480 ,因此如果您在服务器上配置了防火墙,则需要允许访问端口2480

sudo ufw allow 2480

然后重启UFW。

sudo systemctl restart ufw

要连接到OrientDB Studio,请访问浏览器中的http:// your_server_ip :2480 页面加载后,您将看到登录屏幕。

您可以使用您之前设置的密码以root身份登录。 您还可以选择GratefulDeadConcerts数据库并使用OrientDB( 管理员读者作者 )附带的默认用户帐户之一登录。

结论

您刚刚在Ubuntu 16.04服务器上安装了OrientDB社区版,定制其配置,并将其设置为由systemd管理的守护进程。

接下来,您应该通过使用此OrientDB安全教程应用一些安全提示来保护应用免受未经授权的用户的侵害 如果现有的OrientDB安装需要导入到新安装中,请使用此迁移指南 ,该指南是为Ubuntu 14.04编写的,但也适用于Ubuntu 16.04。

有关OrientDB的其他信息,请访问项目的官方文档