NebulaGraph教程 — 第一章 软件安装部署
1 本地部署【单机版】
本文档的安装版本是 NebulaGraph 3.3.0
1.1 安装 NebulaGraph
参考文档:步骤 1:安装 NebulaGraph
RPM
和 DEB
是 Linux 系统下常见的两种安装包格式,本文介绍如何使用 RPM
或 DEB
文件在一台机器上快速安装 NebulaGraph
。
1.1.1 前提条件
已安装 wget
1.1.2 下载安装包
提示:
- 当前仅支持在
Linux
系统下安装NebulaGraph
,且仅支持CentOS 7.x
、CentOS 8.x
、Ubuntu 16.04
、Ubuntu 18.04
、Ubuntu 20.04
操作系统。- 如果用户使用的是国产化的
Linux
操作系统,请安装企业版 NebulaGraph
。
- 下载
release
版本
URL 格式如下:
//Centos 7
https://oss-cdn.nebula-graph.com.cn/package/<release_version>/nebula-graph-<release_version>.el7.x86_64.rpm
//Centos 8
https://oss-cdn.nebula-graph.com.cn/package/<release_version>/nebula-graph-<release_version>.el8.x86_64.rpm
//Ubuntu 1604
https://oss-cdn.nebula-graph.com.cn/package/<release_version>/nebula-graph-<release_version>.ubuntu1604.amd64.deb
//Ubuntu 1804
https://oss-cdn.nebula-graph.com.cn/package/<release_version>/nebula-graph-<release_version>.ubuntu1804.amd64.deb
//Ubuntu 2004
https://oss-cdn.nebula-graph.com.cn/package/<release_version>/nebula-graph-<release_version>.ubuntu2004.amd64.deb
例如要下载适用于Centos 7.5
的3.3.0
安装包:
wget https://oss-cdn.nebula-graph.com.cn/package/3.3.0/nebula-graph-3.3.0.el7.x86_64.rpm
下载适用于ubuntu 1804
的3.3.0
安装包:
wget https://oss-cdn.nebula-graph.com.cn/package/3.3.0/nebula-graph-3.3.0.ubuntu1804.amd64.deb
1.1.3 安装 NebulaGraph
- 安装 RPM 包
$ sudo rpm -ivh --prefix=<installation_path> <package_name>
--prefix
为可选项,用于指定安装路径。如不设置,系统会将 NebulaGraph
安装到默认路径/usr/local/nebula/
。
例如,要在默认路径
下安装3.3.0
版本的 RPM
包,运行如下命令:
sudo rpm -ivh nebula-graph-3.3.0.el7.x86_64.rpm
- 安装 DEB 包
$ sudo dpkg -i <package_name>
使用 DEB 包安装 NebulaGraph 时不支持自定义安装路径。默认安装路径为
/usr/local/nebula/
。
例如安装3.3.0版本的 DEB 包:
sudo dpkg -i nebula-graph-3.3.0.ubuntu1804.amd64.deb
1.2 启动 NebulaGraph 服务
参考文档:步骤 2:启动 NebulaGraph 服务
NebulaGraph
支持通过脚本管理服务。
1.2.1 使用脚本管理服务
使用脚本nebula.service
管理服务,包括启动、停止、重启、中止和查看。
注意
:nebula.service
的默认路径是/usr/local/nebula/scripts
,如果修改过安装路径,请使用实际路径。
命令参数:
$ sudo /usr/local/nebula/scripts/nebula.service
[-v] [-c <config_file_path>]
<start | stop | restart | kill | status>
<metad | graphd | storaged | all>
参数说明:
-v:显示详细调试信息。
-c:指定配置文件路径,默认路径为/usr/local/nebula/etc/
。
start:启动服务。
stop:停止服务。
restart:重启服务。
kill:中止服务。
status:查看服务状态。
metad:管理 Meta 服务。
graphd:管理。
Graph:服务。
storaged:管理 Storage 服务。
all:管理所有服务。
1.2.2 启动 NebulaGraph 服务
在 NebulaGraph 安装的相对路径下
或全路径下
执行命令:
示例:
/opt/soft/nebula/nebula-graph-3.3.0/scripts/nebula.service start all
执行结果:
[root@standalone nebula]# /opt/soft/nebula/nebula-graph-3.3.0/scripts/nebula.service start all
[WARN] The maximum files allowed to open might be too few: 1024
[INFO] Starting nebula-metad...
[INFO] Done
[INFO] Starting nebula-graphd...
[INFO] Done
[INFO] Starting nebula-storaged...
[INFO] Done
1.2.3 停止 NebulaGraph 服务
请勿使用kill -9 命令强制终止进程,否则可能较小概率出现数据丢失。
执行如下命令停止 NebulaGraph 服务:
示例:
/opt/soft/nebula/nebula-graph-3.3.0/scripts/nebula.service stop all
执行结果:
[root@standalone nebula]# /opt/soft/nebula/nebula-graph-3.3.0/scripts/nebula.service stop all
[WARN] The maximum files allowed to open might be too few: 1024
[INFO] Stopping nebula-metad...
[INFO] Done
[INFO] Stopping nebula-graphd...
[INFO] Done
[INFO] Stopping nebula-storaged...
[INFO] Done
1.2.4 查看 NebulaGraph 服务
执行如下命令查看 NebulaGraph 服务状态:
示例:
/opt/soft/nebula/nebula-graph-3.3.0/scripts/nebula.service status all
执行结果【正常】:
[root@standalone nebula]# /opt/soft/nebula/nebula-graph-3.3.0/scripts/nebula.service status all
[WARN] The maximum files allowed to open might be too few: 1024
[INFO] nebula-metad(c9f84b1): Running as 8950, Listening on 9559
[INFO] nebula-graphd(c9f84b1): Running as 8973, Listening on 9669
[WARN] nebula-storaged after v3.0.0 will not start service until it is added to cluster.
[WARN] See Manage Storage hosts:ADD HOSTS in https://docs.nebula-graph.io/
[INFO] nebula-storaged(c9f84b1): Running as 9049, Listening on 9779
正常启动 NebulaGraph 后,
nebula-storaged
进程的端口显示红色。这是因为nebula-storaged
在启动流程中会等待nebula-metad
添加当前 Storage 服务,当前 Storage 服务收到 Ready 信号后才会正式启动服务。从 3.0.0 版本开始,在配置文件中添加的 Storage 节点无法直接读写,配置文件的作用仅仅是将 Storage 节点注册至 Meta 服务中。必须使用ADD HOSTS
命令后,才能正常读写 Storage 节点。更多信息,参见管理 Storage 主机。
执行结果【异常】:如果返回类似如下结果,表示 NebulaGraph 服务异常,可以根据异常服务信息进一步排查,或者在 NebulaGraph 社区寻求帮助。
[INFO] nebula-metad: Running as 25600, Listening on 9559
[INFO] nebula-graphd: Exited
[INFO] nebula-storaged: Running as 25646, Listening on 9779
NebulaGraph
服务由 Meta
服务、Graph
服务和 Storage
服务共同提供,这三种服务的配置文件都保存在安装目录的etc
目录内,默认路径为/usr/local/nebula/etc/
,用户可以检查相应的配置文件排查问题。
1.3 连接 NebulaGraph
参考文档:步骤 3:连接 NebulaGraph
重要提示
首次连接到
NebulaGraph
后,必须先注册Storage
服务,才能正常查询数据。
NebulaGraph 支持多种类型的客户端,包括命令行客户端、可视化界面客户端和流行编程语言客户端。
NebulaGraph Console
:原生 CLI 客户端NebulaGraph CPP
:C++
客户端NebulaGraph Java
:Java
客户端NebulaGraph Python
:Python
客户端NebulaGraph Go
:Go
客户端
前提条件
NebulaGraph
服务已启动。- 运行
Nebula Console
的机器和运行NebulaGraph
的服务器网络互通。 Nebula Console
的版本兼容NebulaGraph
的版本。
版本相同的 Nebula Console
和 NebulaGraph
兼容程度最高,版本不同的 Nebula Console
连接 NebulaGraph
时,可能会有兼容问题,或者无法连接并报错:incompatible version between client and server
。
操作步骤
- 在
Nebula Console
下载页面,确认需要的版本,单击Assets
。【建议选择最新版本】
- (
可选
)为方便使用,重命名文件为nebula-console
。【在 Windows 系统中,请重命名为nebula-console.exe
。】 - 在运行
Nebula Console
的机器上执行如下命令,为用户授予nebula-console
文件的执行权限。【Windows 系统请跳过此步骤。】
chmod 111 nebula-console
- 在命令行界面中,切换工作目录至
nebula-console
文件所在目录。 - 执行如下命令连接
NebulaGraph
。
# Linux 或 macOS
./nebula-console -addr <ip> -port <port> -u <username> -p <password>
[-t 120] [-e "nGQL_statement" | -f filename.nGQL]
# Windows
nebula-console.exe -addr <ip> -port <port> -u <username> -p <password>
[-t 120] [-e "nGQL_statement" | -f filename.nGQL]
示例:
nebula-console.exe -addr 192.168.13.10 -port 9669 -u root -p 111
1.4 注册 Storage 服务
首次连接到 NebulaGraph
后,需要先添加 Storage
主机,并确认主机都处于在线状态。
历史版本兼容性
从NebulaGraph 3.0.0
版本开始,必须先使用ADD HOSTS
添加主机,才能正常通过Storage
服务读写数据。
前提条件
已连接 NebulaGraph
服务。
操作步骤
- 添加
Storage
主机。
ADD HOSTS <ip>:<port> [,<ip>:<port> ...];
示例:
nebula> ADD HOSTS 192.168.10.100:9779, 192.168.10.101:9779, 192.168.10.102:9779;
请确保添加的主机
IP
和配置文件nebula-storaged.conf
中local_ip
配置的IP
一致,否则会导致添加Storage
主机失败。nebula-storaged.conf
在etc
目录下。
- 检查主机状态,确认全部在线。
(root@nebula) [(none)]> show hosts
+-------------+------+-----------+----------+--------------+-----------------------+------------------------+---------+
| Host | Port | HTTP port | Status | Leader count | Leader distribution | Partition distribution | Version |
+-------------+------+-----------+----------+--------------+-----------------------+------------------------+---------+
| "127.0.0.1" | 9779 | 19779 | "ONLINE" | 15 | "basketballplayer:15" | "basketballplayer:15" | "3.3.0" |
+-------------+------+-----------+----------+--------------+-----------------------+------------------------+---------+
Got 1 rows (time spent 1.148ms/2.2764ms)
1.5 使用常用 nGQL(CRUD 命令)
参考文档:使用常用 nGQL(CRUD 命令)
推荐阅读参考文档。
2 服务相关命令
2.1 启动
/opt/soft/nebula/nebula-graph-3.3.0/scripts/nebula.service start all
2.2 停止
/opt/soft/nebula/nebula-graph-3.3.0/scripts/nebula.service stop all
2.3 查看
/opt/soft/nebula/nebula-graph-3.3.0/scripts/nebula.service status all
2.4 连接
# Windows
nebula-console.exe -addr 192.168.13.10 -port 9669 -u root -p 111