介绍
OrientDB是一个支持图形和文档数据库的多模型NoSQL数据库,它是一个Java应用程序,可以在任何操作系统上运行。
在本文中,您将在 Ubuntu 16.04 服务器上安装和配置 OrientDB 的最新社区版本。
前提条件
要遵循本教程,您将需要:
- 一个 Ubuntu 16.04 服务器至少具有 2 GB 的 RAM,但即使是 512 MB 也会起作用。
- 一个 sudo 非 root 用户和防火墙,通过遵循此设置(Initial Server Setup with Ubuntu 16.04)(https://andsky.com/tech/tutorials/initial-server-setup-with-ubuntu-16-04)。
- Java 安装,您可以通过遵循 本 Java 安装指南的 JDK 8 步骤来完成。
步骤 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. . .
您需要更改的值是Xms
和Xmx
,这些值为 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/orientdb
和orientdb
。
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 中修改 User 、 Group 和 ** 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 , reader 或 writer )。
结论
您刚刚在 Ubuntu 16.04 服务器上安装了 OrientDB 社区版本,定制了其配置,并将其设置为由 systemd 管理的 DAEMON。
接下来,您应该通过使用 这个 OrientDB 安全教程来保护应用程序免受未经授权的用户的侵害,如果您有需要导入到新安装的现有 OrientDB 安装,请使用 这个迁移指南,它是为 Ubuntu 14.04 编写的,但也适用于 Ubuntu 16.04。
有关 OrientDB 的更多信息,请参阅 该项目的官方文档。