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

介绍

OrientDB是一个支持图形和文档数据库的多模型NoSQL数据库,它是一个Java应用程序,可以在任何操作系统上运行。

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

前提条件

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

步骤 1 – 下载和安装 OrientDB

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

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

1sudo apt-get update

在发布时,它是2.2.20,但你可以检查 项目的下载页面的最新版本,并更改下面的命令中的版本号匹配。

1wget -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,所以您现在需要做的就是解开它。

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

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

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

OrientDB 现在已安装. 如果您使用的是内存限制服务器,您可以配置 OrientDB 以在下一步使用更少的 RAM. 否则,您可以继续步骤 3 来启动服务器本身。

步骤 2 — 配置 OrientDB 以使用更少的 RAM (可选)

默认情况下,OrientDB 示威者预计至少有 2 GB 的 RAM,如果发现较少,它将无法启动,如果你试图启动它,你会看到这样的错误:

1[secondary_label Output]
2ubuntu-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)
3ubuntu-orientdb server.sh[1670]: # There is insufficient memory for the Java Runtime Environment to continue.

有一个配置更改,你可以做,这将允许你远离使用服务器只有512 MB的RAM. 这是在server.sh文件中的设置的功能,可以更改,以便戴蒙可以开始使用更少的RAM。

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

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

然后滚到包含本代码块中显示的代码片段的部分:

1[label /opt/orientdb/bin/server.sh]
2. . .
3# ORIENTDB memory options, default to 2GB of heap.
4
5if [ -z "$ORIENTDB_OPTS_MEMORY" ] ; then
6    ORIENTDB_OPTS_MEMORY="-Xms2G -Xmx2G"
7fi
8. . .

您需要更改的值是XmsXmx,这些值为 Java 虚拟机的初始和最大内存分配池。

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

1[label /opt/orientdb/bin/server.sh]
2# ORIENTDB memory options, default to 2GB of heap.
3
4if [ -z "$ORIENTDB_OPTS_MEMORY" ] ; then
5    ORIENTDB_OPTS_MEMORY="-Xms128m -Xmx256m"
6fi

保存并关闭文件 在下一个步骤中,您将启动 OrientDB。

步骤 3 – 启动服务器

现在二进制已经在位,并且您可选地配置服务器以使用更少的RAM,您现在可以启动服务器并连接到控制台。

导航到安装目录。

1cd /opt/orientdb

然后启动服务器。

1sudo bin/server.sh

第一次启动服务器时,您将被要求为 root 用户帐户指定密码. 这是一个内部的OrientDB帐户,将用于访问服务器的东西,如OrientDB Studio,管理OrientDB的基于Web的界面。

从启动服务器生成的输出部分告诉您服务器和OrientDB Studio正在收听哪些端口。

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

当您看到此时,OrientDB 现在在当前的终端中运行,让我们确认服务器正在听取相应的端口。

打开第二个终端并通过SSH连接到相同的服务器。

1[environment local]
2ssh sammy@your_server_ip

然后,在第二个终端中,确认服务器正在倾听2424(对二进制连接)和2480(对HTTP连接)的端口,使用以下命令。

1[environment second]
2sudo netstat -plunt | grep -i listen

输出应包含两个端口号的引用,如下:

1[secondary_label Output]
2[environment second]
3tcp 0 0 0.0.0.0:22 0.0.0.0:*               LISTEN 1160/sshd       
4tcp6 0 0 :::2480                 :::*                    LISTEN 2758/java       
5tcp6 0 0 :::22                   :::*                    LISTEN 1160/sshd       
6tcp6 0 0 :::2424                 :::*                    LISTEN 2758/java

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

步骤 4 – 连接到控制台

OrientDB 控制台是与应用程序合作的命令行接口. 要启动它,键入:

1[environment second]
2sudo /opt/orientdb/bin/console.sh

你会看到以下:

1[secondary_label Output]
2[environment second]
3OrientDB console v.2.2.20 (build UNKNOWN@r98dbf8a2b8d43e4af09f1b12fa7ae9dfdbd23f26; 2017-02-02 07:01:26+0000) www.orientdb.com
4Type 'help' to display all the supported commands.
5Installing extensions for GREMLIN language v.2.6.0
6
7orientdb>

现在,连接到服务器实例. 所需的密码是您在上一步中首次启动服务器时指定的密码。

1connect remote:127.0.0.1 root root-password

如果您成功连接,您将看到此输出。

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

如果您没有,请双重检查您是否正确输入了根密码,并且 OrientDB 仍在您的第一个终端中运行。

当您准备好时,请在第二个终端中键入退出,以退出 OrientDB 提示。

1exit

您刚刚安装了 OrientDB,手动启动了它,并连接到它,这意味着 OrientDB 正在工作,但这也意味着您需要在重新启动服务器时随时手动启动它。

步骤 5 — 将 OrientDB 配置为 Daemon

此时,OrientDB已安装,但它只是服务器上的一大堆脚本。在此步骤中,我们将将其配置为在系统上运行作为一个戴蒙。这涉及修改/opt/orientdb/bin/orientdb.sh脚本和配置文件,/opt/orientdb/config/orientdb-server-config.xml

首先,在第一个终端窗口中键入CTRL+C,如果 OrientDB 仍在运行,则可以停止它。

让我们开始修改‘/opt/orientdb/bin/orientdb.sh’脚本,告诉 OrientDB用户它应该运行为,并将其指向安装目录。

在这个例子中,我们正在创建 orientdb 用户. 该命令还会创建 orientdb 组:

1sudo useradd -r orientdb -s /sbin/nologin

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

1sudo chown -R orientdb:orientdb /opt/orientdb

现在让我们对orientdb.sh脚本做一些更改。

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

首先,我们需要将其指向适当的安装目录,然后告诉它应该作为哪个用户运行它,因此,请寻找下面的两个行向文件的顶部:

1[label  /opt/orientdb/bin/orientdb.sh]
2. . .
3# You have to SET the OrientDB installation directory here
4ORIENTDB_DIR="YOUR_ORIENTDB_INSTALLATION_PATH"
5ORIENTDB_USER="USER_YOU_WANT_ORIENTDB_RUN_WITH"
6. . .

然后将它们分别更改为/opt/orientdborientdb

1[label /opt/orientdb/bin/orientdb.sh]
2# You have to SET the OrientDB installation directory here
3ORIENTDB_DIR="/opt/orientdb"
4ORIENTDB_USER="orientdb"

保存并关闭文件。

然后修改服务器配置文件的权限,以防止未经授权的用户阅读它。

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

您可以在 本 Linux 授权教程中了解更多有关文件权限的信息。

在下一步中,我们将配置戴蒙,以便由 Systemd,服务管理器控制。

步骤 6 – 安装 Systemd 启动脚本

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

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

该文件中有一些设置,我们需要修改,所以打开它来编辑。

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

Service 中修改 UserGroup 和 ** ExecStart** 变量以匹配您的安装. 您在步骤 5 中设置了用户和组(如果您遵循步骤为 verbatim,这两者都是 ** orientdb**)。

1[label /etc/systemd/system/orientdb.service]
2. . .
3
4[Service]
5User=orientdb
6Group=orientdb
7ExecStart=/opt/orientdb/bin/server.sh

保存并关闭文件。

然后运行以下命令来重新加载所有单元。

1sudo systemctl daemon-reload

有了这一切,您现在可以开始使用 OrientDB 服务。

1sudo systemctl start orientdb

确保它在船上开始。

1sudo systemctl enable orientdb

通过检查过程状态来验证它是否真的开始了。

1sudo systemctl status orientdb
1[secondary_label Output]
2 orientdb.service - OrientDB Server
3   Loaded: loaded (/etc/systemd/system/orientdb.service; disabled; vendor preset: enabled)
4   Active: active (running) since Sat 2017-02-04 20:54:27 CST; 11s ago
5 Main PID: 22803 (java)
6    Tasks: 14
7   Memory: 126.4M
8. . .

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

步骤 7 – 连接到 OrientDB Studio

OrientDB Studio 是管理 OrientDB 的 Web 界面,这对测试有用,尽管完全限制访问它是一种 更好的安全实践

默认情况下,OrientDB 工作室在端口2480上倾听,所以如果您在服务器上配置了防火墙,则需要允许访问端口2480

1sudo ufw allow 2480

然后重新启动 UFW。

1sudo systemctl restart ufw

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

您还可以选择‘GratefulDeadConcerts’数据库,并使用包含在 OrientDB 的默认用户帐户之一登录(admin , readerwriter )。

结论

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

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

有关 OrientDB 的更多信息,请参阅 该项目的官方文档

Published At
Categories with 技术
comments powered by Disqus