如何在Ubuntu16.04上安装和配置OrientDB

来自菜鸟教程
跳转至:导航、​搜索

介绍

OrientDB 是一个多模型 NoSQL 数据库,支持图形和文档数据库。 它是一个 Java 应用程序,可以在任何操作系统上运行。 它还完全符合 ACID,支持多主复制,可以轻松进行水平扩展。

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

先决条件

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

  • 理想情况下,一台 Ubuntu 16.04 服务器具有至少 2GB 的 RAM,但即使是 512MB 也可以使用。
  • 一个 sudo 非 root 用户和防火墙,按照此 Initial Server Setup with Ubuntu 16.04 进行设置。
  • 已安装 Java,您可以按照本 Java 安装指南 JDK 8 步骤进行操作。

第 1 步 — 下载和安装 OrientDB

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

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

sudo apt-get update

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

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 所需的预编译二进制文件,因此您现在需要做的就是解压它。

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,如果发现不足,将无法启动。 如果您尝试启动它,您将看到这样的错误:

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

您可以进行一项配置更改,让您摆脱使用 RAM 低至 512 MB 的服务器。 它是 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 Studio 是用于管理 OrientDB 的基于 Web 的界面。 如果您不指定密码,则会自动生成一个密码。 但是,最好自己指定一个,因此请在出现提示时指定。

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

Output2017-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 连接到同一服务器。

ssh sammy@your_server_ip

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

sudo netstat -plunt | grep -i listen

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

Outputtcp        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

您将看到以下内容:

OutputOrientDB 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>

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

connect remote:127.0.0.1 root root-password

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

OutputConnecting 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/orientdborientdb

/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权限教程中了解更多关于文件权限的信息。

在下一步中,我们将配置守护进程,使其由服务管理器 understanding-systemd-units-and-unit-files 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

修改 Service 下的 UserGroupExecStart 变量以匹配您的安装。 您在步骤 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
Output● 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

sudo ufw allow 2480

然后,重新启动 UFW。

sudo systemctl restart ufw

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

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

结论

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

接下来,您应该使用 this OrientDB security tutorial 应用一些安全提示来保护应用程序免受未经授权的用户的攻击。 如果您需要将现有的 OrientDB 安装导入到新安装中,请使用 this migration guide,它是为 Ubuntu 14.04 编写的,但也适用于 Ubuntu 16.04。

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