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

介绍

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

在本文中,您将在Ubuntu 16.04服务器上安装和配置OrientDB的最新社区版。没有服务器的用户可以购买和使用腾讯云服务器或者直接在腾讯云实验室Ubuntu服务器上机安装和配置OrientDB 。

准备

要学习本教程,您需要:

第1步 - 下载和安装OrientDB

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

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

$   sudo apt-get update

下载最新版本的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可用,并且如果找不到则无法启动。如果你尝试启动它,你会看到这样的错误:

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至少为128MB,否则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.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

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

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

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

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提示。

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

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

在下一步中,我们将配置后台程序,使其由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
● 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(默认用户帐户的一个管理员,用户或编写员)。

结论

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


参考文献:《How To Install and Configure OrientDB on Ubuntu 16.04》

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏潇涧技术专栏

Publish Gradle Android Library to jCenter Repository

本文主要介绍如何通过Gradle将Android库项目上传到jCenter仓库中。

9730
来自专栏程序猿DD

Spring Boot开发Web应用

《SpringBoot快速入门》 中我们完成了一个简单的RESTful Service,体验了快速开发的特性。在留言中也有朋友提到如何把处理结果渲染到页面上。那...

22160
来自专栏瞎说开发那些事

Linux 中的静态库和动态库简介及生成过程示例

22740
来自专栏北京马哥教育

详细到没朋友,一文帮你理清Linux 用户与用户组关系~

15430
来自专栏Java技术栈

SpringCloud动态刷新配置信息

有时候在配置中心有些参数是需要修改的,这时候如何不重启而达到实时生效的效果呢? 添加依赖 <dependencies> ... <depende...

31250
来自专栏C++

Windows编译Opencv

22940
来自专栏黑白安全

Kali Linux安装到U盘

虽然使用其他工具也能将Kali Linux安装到U盘,但是经测试,成功率很低。而且一般是刻录后还需要其他操作以避免刻录为Kali Linux安装盘。借助虚拟机将...

25820
来自专栏别先生

Oozie如何和安装部署

1、Oozie的简单介绍: 1、Oozie是一个工作流引擎服务器,用于运行hadoop map/reduce和hive等任务工作流,同时Oozie还是一个Jav...

77990
来自专栏AndroidTv

读书笔记--Android Gradle权威指南(上)前言笔记

17440
来自专栏24K纯开源

Android Studio导入项目非常慢的解决办法

问题     Android Studio目前已经更新到2.0 Preview 6了,作为Google大力推崇的开发工具,相对于Eclipse ADT有着不可比...

21490

扫码关注云+社区

领取腾讯云代金券