轻松上手 —— 通过 RPM 包快速部署 NebulaGraph

news2025/3/13 8:53:44

前言

        在当今大数据时代,处理复杂关系数据的需求与日俱增,图数据库应运而生并逐渐崭露头角。NebulaGraph 作为一款高性能、分布式且易扩展的图数据库,专为应对大规模图数据处理而精心打造。它不仅具备丰富的查询语言,还拥有强大高效的图计算能力,在社交网络分析、推荐系统、知识图谱构建等众多领域都有着广泛的应用,成为众多开发者和企业的首选技术方案。

        在实际应用中,快速、稳定地部署 NebulaGraph 是充分发挥其优势的第一步。RPM 和 DEB 作为 Linux 系统下常见的安装包格式,为我们安装 NebulaGraph 提供了便捷途径。今天,我小支就将带领大家详细了解如何使用 RPM 包在 Linux 系统上高效安装 NebulaGraph,同时分享一些实用的优化建议以及常见问题的解决方案,助力大家轻松开启 NebulaGraph 的应用之旅。

一、环境准备:为 NebulaGraph 搭建稳固基石

(一)操作系统要求

NebulaGraph 目前仅支持在 Linux 系统下安装,且对操作系统版本有所限定,仅支持 CentOS 7.x、CentOS 8.x、Ubuntu 16.04、Ubuntu 18.04、Ubuntu 20.04 操作系统。为了让 NebulaGraph 发挥最佳性能,强烈推荐使用 64 位操作系统。例如,通过以下命令查看当前系统版本:

[root@instance2 ~]# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core) 
[root@instance2 ~]# 

如果用户使用的是国产化的 Linux 操作系统,需要安装企业版 NebulaGraph ,以确保兼容性和稳定性。

(二)硬件要求

  1. CPU:为保证系统的流畅运行,建议使用至少 2 核心的 CPU,若数据处理任务较为繁重,4 核心或以上的 CPU 将是更好的选择。
  2. 内存:内存方面,至少需要 8GB RAM,并且要根据实际数据量的大小适当增加,以避免因内存不足导致性能瓶颈。
  3. 磁盘空间:充足的磁盘空间是存储数据和日志文件的基础,务必提前规划好足够的空间。
    通过以下命令可以查看当前系统的硬件信息:
[root@instance2 ~]# cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
      8  Intel(R) Xeon(R) Gold 5118 CPU @ 2.30GHz
[root@instance2 ~]# free -h
              total        used        free      shared  buff/cache   available
Mem:            31G         14G        6.3G        676K         10G         16G
Swap:            0B          0B          0B
[root@instance2 ~]# df -Th
Filesystem                      Type      Size  Used Avail Use% Mounted on
/dev/mapper/centos_caip122-root ext4       42G   27G   13G  68% /
devtmpfs                        devtmpfs   16G     0   16G   0% /dev
tmpfs                           tmpfs      16G     0   16G   0% /dev/shm
tmpfs                           tmpfs      16G  676K   16G   1% /run
tmpfs                           tmpfs      16G     0   16G   0% /sys/fs/cgroup
/dev/sda2                       ext4      190M   93M   83M  53% /boot
/dev/sdc1                       xfs       100G  103M  100G   1% /redo
/dev/sdb1                       xfs       100G   41G   60G  41% /data

(三)访问官方文档

在正式开始安装之前,强烈建议大家访问 NebulaGraph 的官方文档网站:使用 RPM/DEB 包安装 - NebulaGraph Database 手册Documentation for NebulaGraph Databasehttps://docs.nebula-graph.com.cn/3.8.0/4.deployment-and-installation/2.compile-and-install-nebula-graph/2.install-nebula-graph-by-rpm-or-deb/ 官方文档是我们学习和使用 NebulaGraph 的重要指南,其中包含了详细的安装说明、操作指南以及各种技术细节,能够为我们在安装和后续使用过程中提供有力支持。

(四)软件依赖

在安装 NebulaGraph 之前,需要确认已安装一些必要的软件包。执行以下命令安装相关依赖:

[root@instance2 ~]# yum install -y epel-release
Loaded plugins: fastestmirror
Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=stock error was
14: curl#7 - "Failed to connect to 2600:1f16:c1:5e01:4180:6610:5482:c1c0: Network is unreachable"
base                                                                                                     | 3.6 kB  00:00:00     
epel/x86_64/metalink                                                                                     | 4.7 kB  00:00:00     
Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=extras&infra=stock error was
14: curl#7 - "Failed to connect to 2600:1f16:c1:5e01:4180:6610:5482:c1c0: Network is unreachable"
extras                                                                                                   | 2.9 kB  00:00:00     
mysql-connectors-community                                                                               | 2.6 kB  00:00:00     
mysql-tools-community                                                                                    | 2.6 kB  00:00:00     
mysql57-community                                                                                        | 2.6 kB  00:00:00     
Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=updates&infra=stock error was
14: curl#7 - "Failed to connect to 2600:1f16:c1:5e01:4180:6610:5482:c1c0: Network is unreachable"
updates                                                                                                  | 2.9 kB  00:00:00     
Determining fastest mirrors
 * base: mirrors.bupt.edu.cn
 * epel: repo.jing.rocks
 * extras: mirrors.bupt.edu.cn
 * updates: mirrors.bupt.edu.cn
Package epel-release-7-14.noarch already installed and latest version
Nothing to do
[root@instance2 ~]# 

[root@instance2 ~]# yum install -y wget curl tar gcc make cmake openssl-devel python3-devel
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.bupt.edu.cn
 * epel: repo.jing.rocks
 * extras: mirrors.bupt.edu.cn
 * updates: mirrors.bupt.edu.cn
Package wget-1.14-18.el7_6.1.x86_64 already installed and latest version
Package gcc-4.8.5-44.el7.x86_64 already installed and latest version
Package 1:openssl-devel-1.0.2k-26.el7_9.x86_64 already installed and latest version
Resolving Dependencies

这些软件包是 NebulaGraph 正常安装和运行的基础,安装过程中需确保网络连接稳定,以便顺利下载相关软件包。

(五)下载安装包

  1. 阿里云 OSS 下载 release 版本
    NebulaGraph 的安装包可以从阿里云 OSS 下载,URL 格式如下
    //Centos 7
    https://oss-cdn.nebula-graph.com.cn/package/<release_version>/nebula-graph-<release_version>.el7.x86_64.rpm
    
    
  2. 使用 wget 命令进行下载,示例如下:
wget https://oss-cdn.nebula-graph.com.cn/package/3.8.0/nebula-graph-3.8.0.el7.x86_64.rpm
wget https://oss-cdn.nebula-graph.com.cn/package/3.8.0/nebula-graph-3.8.0.el7.x86_64.rpm.sha256sum.txt

执行上述命令后,系统会从指定链接下载对应的安装包及校验文件,下载过程中会显示下载进度和速度等信息:

[root@instance2 soft]# wget https://oss-cdn.nebula-graph.com.cn/package/3.8.0/nebula-graph-3.8.0.el7.x86_64.rpm
--2025-01-07 14:07:36--  https://oss-cdn.nebula-graph.com.cn/package/3.8.0/nebula-graph-3.8.0.el7.x86_64.rpm
Resolving oss-cdn.nebula-graph.com.cn (oss-cdn.nebula-graph.com.cn)... 220.181.166.204
Connecting to oss-cdn.nebula-graph.com.cn (oss-cdn.nebula-graph.com.cn)|220.181.166.204|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 64791652 (62M) [application/x-redhat-package-manager]
Saving to: ‘nebula-graph-3.8.0.el7.x86_64.rpm’

100%[======================================================================================>] 64,791,652  7.54MB/s   in 10s    

2025-01-07 14:07:46 (6.12 MB/s) - ‘nebula-graph-3.8.0.el7.x86_64.rpm’ saved [64791652/64791652]

[root@instance2 soft]# wget https://oss-cdn.nebula-graph.com.cn/package/3.8.0/nebula-graph-3.8.0.el7.x86_64.rpm.sha256sum.txt
--2025-01-07 14:08:06--  https://oss-cdn.nebula-graph.com.cn/package/3.8.0/nebula-graph-3.8.0.el7.x86_64.rpm.sha256sum.txt
Resolving oss-cdn.nebula-graph.com.cn (oss-cdn.nebula-graph.com.cn)... 220.181.166.204
Connecting to oss-cdn.nebula-graph.com.cn (oss-cdn.nebula-graph.com.cn)|220.181.166.204|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 125 [text/plain]
Saving to: ‘nebula-graph-3.8.0.el7.x86_64.rpm.sha256sum.txt’

100%[======================================================================================>] 125         --.-K/s   in 0s      

2025-01-07 14:08:06 (923 KB/s) - ‘nebula-graph-3.8.0.el7.x86_64.rpm.sha256sum.txt’ saved [125/125]

[root@instance2 soft]# 

下载完成后,即可进行下一步的安装操作。

二、安装 NebulaGraph:步步为营,搭建数据基石

(一)创建指定安装目录

为了便于管理,我们先创建一个指定的安装目录。执行以下命令:

[root@instance2 opt]# mkdir -p app/nebula-graph
[root@instance2 opt]# cd app/nebula-graph/
[root@instance2 nebula-graph]# pwd
/opt/app/nebula-graph
[root@instance2 nebula-graph]# 

上述命令创建了一个 /opt/app/nebula-graph 目录,并进入该目录,后续将在此目录下安装 NebulaGraph。

(二)安装 RPM 包

使用 rpm 命令安装下载的 RPM 包。如果要安装到 /opt/app/nebula-graph 目录,可以执行以下命令:

[root@instance2 soft]# ls
nebula-graph-3.8.0.el7.x86_64.rpm  nebula-graph-3.8.0.el7.x86_64.rpm.sha256sum.txt  openssh-rpms
[root@instance2 soft]# rpm -ivh --prefix=/opt/app/nebula-graph nebula-graph-3.8.0.el7.x86_64.rpm
Preparing...                          ################################# [100%]
Updating / installing...
   1:nebula-graph-3.8.0-1             ################################# [100%]
[root@instance2 soft]# 

其中,--prefix 为可选项,用于指定安装路径。若不设置该选项,系统会将 NebulaGraph 安装到默认路径 /usr/local/nebula/。例如,要在默认路径下安装 3.8.0 版本的 RPM 包,可运行如下命令:

sudo rpm -ivh nebula-graph-3.8.0.el7.x86_64.rpm

安装过程中,系统会显示安装进度和相关信息,安装完成后,NebulaGraph 的相关文件和目录结构就会按照指定路径或默认路径生成。

(三)配置 NebulaGraph

安装完成后,默认情况下 NebulaGraph 的配置文件位于 /etc/nebula/ 目录下(若安装到自定义路径,配置文件位置会相应改变)。我们可以根据实际需求编辑这些配置文件来调整服务参数,比如修改监听端口、设置集群模式等。以编辑 /opt/app/nebula-graph/etc 目录下的 nebula-graphd.conf 文件为例:

[root@instance2 opt]# cd app/nebula-graph/
[root@instance2 nebula-graph]# ls
bin  etc  scripts  share
[root@instance2 nebula-graph]# cd etc/
[root@instance2 etc]# ls
nebula-graphd.conf             nebula-metad.conf.default     nebula-storaged.conf.production
nebula-graphd.conf.default     nebula-metad.conf.production  nebula-storaged-listener.conf.production
nebula-graphd.conf.production  nebula-storaged.conf
nebula-metad.conf              nebula-storaged.conf.default
[root@instance2 etc]# vim nebula-graphd.conf

在配置文件中,我们可以根据官方文档的指导,对各项参数进行合理设置,以满足不同的业务场景和性能需求。配置完成后,保存并退出编辑器,即可完成配置文件的修改。

三、启动 NebulaGraph 服务:让数据引擎运转起来

(一)使用脚本管理服务

NebulaGraph 提供了脚本 nebula.service 来方便地管理服务,包括启动、停止、重启、中止和查看等操作。nebula.service 的默认路径是 /usr/local/nebula/scripts,如果之前修改过安装路径,请使用实际路径。该脚本的语法参数及说明如下:

参数说明
-v显示详细调试信息
-c指定配置文件路径,默认路径为 /usr/local/nebula/etc/
start启动服务
stop停止服务
restart重启服务
kill中止服务
status查看服务状态
metad管理 Meta 服务
graphd管理 Graph 服务
storaged管理 Storage 服务
all管理所有服务

(二)查询服务状态

在启动服务之前,我们可以先查询 NebulaGraph 服务的当前状态。执行以下命令:

[root@instance2 etc]# /opt/app/nebula-graph/scripts/nebula.service status all
[INFO] nebula-metad(7458486): Exited
[INFO] nebula-graphd(7458486): Exited
[INFO] nebula-storaged(7458486): Exited
[root@instance2 etc]# 

从上述结果可以看出,当前服务处于未启动状态。如果安装在默认路径下,查询命令为:

sudo /usr/local/nebula/scripts/nebula.service status all

(三)启动 NebulaGraph 服务

使用如下命令启动所有 NebulaGraph 进程:

[root@instance2 etc]# /opt/app/nebula-graph/scripts/nebula.service start all
[INFO] Starting nebula-metad...
[INFO] Done
[INFO] Starting nebula-graphd...
[INFO] Done
[INFO] Starting nebula-storaged...
[INFO] Done
[root@instance2 etc]# 

执行该命令后,脚本会依次启动 Meta 服务、Graph 服务和 Storage 服务,并在每一步完成时输出相应的 “Done” 信息,表明服务启动成功。若启动过程中出现错误,需根据错误提示排查原因,比如检查配置文件是否正确、依赖服务是否正常运行等。

(四)停止 NebulaGraph 服务

停止 NebulaGraph 服务时,务必不要使用 kill -9 命令强制终止进程,因为这可能在极小概率下导致数据丢失。正确的做法是执行如下命令:

[root@instance2 nebula - graph]# /opt/app/nebula - graph/scripts/nebula.service stop all
[INFO] Stopping nebula - metad...
[INFO] Done
[INFO] Stopping nebula - graphd...
[INFO] Done
[INFO] Stopping nebula - storaged...
[INFO] Done
[root@instance2 nebula - graph]# 

该命令会按照顺序安全地停止各个服务,确保数据的完整性和一致性。

(五)查看 NebulaGraph 服务

执行如下命令可查看 NebulaGraph 服务状态:

[root@instance2 etc]# /opt/app/nebula - graph/scripts/nebula.service status all

如果返回如下结果,则表示 NebulaGraph 服务正常运行:

[INFO] nebula - metad(33fd35e): Running as 29020, Listening on 9559
[INFO] nebula - graphd(33fd35e): Running as 29095, 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(33fd35e): Running as 29147, Listening on 9779

需要注意的是,正常启动 NebulaGraph 后,nebula - storaged 进程的端口显示红色属于正常现象。这是因为 nebula - storaged 在启动流程中会等待 nebula - metad 添加当前 Storage 服务,当前 Storage 服务收到 Ready 信号后才会正式启动服务。从 3.0.0 版本开始,在配置文件中添加的 Storage 节点无法直接读写,配置文件的作用仅仅是将 Storage 节点注册至 Meta 服务中。必须使用 ADD HOSTS 命令后,才能正常读写 Storage 节点。更多信息,可参见管理 Storage 主机相关文档。

(六)启动报错及解决办法

  1. 启动时报错 Storage hosts: 服务异常
    如果返回类似如下结果,表示 NebulaGraph 服务异常:
[root@instance2 etc]# /opt/app/nebula - graph/scripts/nebula.service status all
[INFO] nebula - metad(7458486): Running as 26056, Listening on 9559 
[INFO] nebula - graphd(7458486): Running as 26079, 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(7458486): Running as 26101, Listening on 9779 
[root@instance2 etc]# 

此时,可以根据异常服务信息进一步排查,或者在 NebulaGraph 社区寻求帮助。
2. 参考官方文档解决
可查阅官方文档;管理 Storage 主机 - NebulaGraph Database 手册Documentation for NebulaGraph Databasehttps://docs.nebula-graph.com.cn/3.8.0/4.deployment-and-installation/manage-storage-host/获取解决方案。例如,当查询状态出现 “OFFLINE” 节点失败时:

(root@nebula) [(none)]> SHOW HOSTS STORAGE;
+----------------+------+-----------+-----------+--------------+---------+
| Host           | Port | Status    | Role      | Git Info Sha | Version |
+----------------+------+-----------+-----------+--------------+---------+
| "127.0.0.1"    | 9779 | "OFFLINE" | "STORAGE" | ""           |         |
+----------------+------+-----------+-----------+--------------+---------+
Got 2 rows (time spent 1.722ms/2.445398ms)

Tue, 07 Jan 2025 15:16:46 CST
(root@nebula) [(none)]> 

  • 向集群中增加 Storage 主机
    可以通过执行以下命令向集群中增加 Storage 主机:
  • (root@nebula) [(none)]> ADD HOSTS 127.0.0.1:9779;
    Execution succeeded (time spent 1.593ms/2.152096ms)
    
    Tue, 07 Jan 2025 15:16:40 CST
    
    (root@nebula) [(none)]> 
    
  • 再次检查状态
    再次查看服务状态:
[root@instance2 nebula - graph]# /opt/app/nebula - graph/scripts/nebula.service status all
[INFO] nebula - metad(7458486): Running as 43288, Listening on 9559 
[INFO] nebula - graphd(7458486): Running as 43320, Listening on 9669 
[INFO] nebula - storaged(7458486): Running as 43408, Listening on 9779 
[root@instance2 nebula - graph]# 

同时在客户端查询:

(root@nebula) [(none)]> SHOW HOSTS STORAGE;
+-------------+------+----------+-----------+--------------+---------+
| Host        | Port | Status   | Role      | Git Info Sha | Version |
+-------------+------+----------+-----------+--------------+---------+
| "127.0.0.1" | 9779 | "ONLINE" | "STORAGE" | "7458486"    | "3.8.0" |
+-------------+------+----------+-----------+--------------+---------+
Got 1 rows (time spent 1.198ms/1.961314ms)

Tue, 07 Jan 2025 15:21:41 CST

(root@nebula) [(none)]> 

可以看到 Storage 主机状态变为 “ONLINE”,表明问题已解决。NebulaGraph 服务由 Meta 服务、Graph 服务和 Storage 服务共同提供,这三种服务的配置文件都保存在安装目录的 etc 目录内,默认路径为 /usr/local/nebula/etc/,用户可以检查相应的配置文件排查问题。

四、安装图形化工具 nebula - console:便捷操作 NebulaGraph

NebulaGraph 支持多种类型的客户端,包括命令行客户端、可视化界面客户端和流行编程语言客户端。详情可参见客户端列表。这里我们重点介绍原生命令行客户端 nebula - console 的安装和使用。

(一)下载 nebula - console

nebula - console 是 NebulaGraph 的命令行客户端工具。我们可以从 GitHub 的发布页面下载对应版本的二进制执行包。版本相同的 NebulaGraph Console 和 NebulaGraph 兼容程度最高,版本不同的 NebulaGraph Console 连接 NebulaGraph 时,可能会有兼容问题,或者无法连接并报错 “incompatible version between client and server”。在 Assets 区域找到机器运行所需的二进制文件,下载文件到机器上。

(二)重命名 nebula - console

为了方便使用,可以重命名下载的文件为 nebula - console。操作如下:

[root@instance2 nebula - graph]# ls
bin  data  etc  logs  pids  scripts  share
[root@instance2 nebula - graph]# ls
bin  data  etc  logs  nebula - console - linux - amd64 - v3.8.0  pids  scripts  share
[root@instance2 nebula - graph]# mv nebula - console - linux - amd64 - v3.8.0 nebula - console
[root@instance2 nebula - graph]# ls
bin  data  etc  logs  nebula - console  pids  scripts  share
[root@instance2 nebula - graph]# 

 

(三)授予 nebula - console 权限

在运行 NebulaGraph Console 的机器上执行如下命令,为用户授予 nebula - console 文件的执行权限:

[root@instance2 nebula - graph]# ls
bin  data  etc  logs  nebula - console  pids  scripts  share
[root@instance2 nebula - graph]# chmod +x nebula - console 
[root@instance2 nebula - graph]# ls
bin  data  etc  logs  nebula - console  pids  scripts  share
[root@instance2 nebula - graph]# 

或者执行 $ chmod 111 nebula - console 也可达到相同效果。在命令行界面中,切换工作目录至 nebula - console 文件所在目录,以便后续执行连接操作。

五、连接 NebulaGraph:开启数据探索之旅

(一)执行如下命令连接 NebulaGraph

使用以下命令连接 NebulaGraph:

[root@instance2 nebula - graph]# ls
bin  cluster.id  data  etc  logs  nebula - console  pids  scripts  share
[root@instance2 nebula - graph]# ./nebula - console --addr 127.0.0.1 --port 9669 -u root -p nebula

Welcome!

(root@nebula) [(none)]> 

上述命令中的参数说明如下:

参数说明
-h/-help显示帮助菜单
-addr/-address设置要连接的 Graph 服务的 IP 或主机名。默认地址为 127.0.0.1
-P/-port设置要连接的 Graph 服务的端口。默认端口为 9669
-u/-user设置 NebulaGraph 账号的用户名。未启用身份认证时,可以使用任意已存在的用户名(默认为 root)
-p/-password设置用户名对应的密码。未启用身份认证时,密码可以填写任意字符
-t/-timeout设置整数类型的连接超时时间。单位为毫秒,默认值为 120
-e/-eval设置字符串类型的 nGQL 语句。连接成功后会执行一次该语句并返回结果,然后自动断开连接
-f/-file设置存储 nGQL 语句的文件的路径。连接成功后会执行该文件内的 nGQL 语句并返回结果,执行完毕后自动断开连接
-enable_ssl连接 NebulaGraph 时使用 SSL 加密
-ssl_root_ca_path指定 CA 证书的存储路径
-ssl_cert_path指定 CRT 证书的存储路径
-ssl_private_key_path指定私钥文件的存储路径

(二)验证安装

为了验证 NebulaGraph 是否成功安装并正常工作,可以尝试连接到图数据库并执行简单的查询。这里我们使用官方提供的命令行工具 nebula - console:

[root@instance2 nebula - graph]# ./nebula - console --addr 127.0.0.1 --port 9669 -u root -p nebula

Welcome!

(root@nebula) [(none)]> SHOW HOSTS;
+-------------+------+----------+--------------+----------------------+------------------------+---------+
| Host        | Port | Status   | Leader count | Leader distribution  | Partition distribution | Version |
+-------------+------+----------+--------------+----------------------+------------------------+---------+
| "127.0.0.1" | 9779 | "ONLINE" | 0            | "No valid partition" | "No valid partition"   | "3.8.0" |
+-------------+------+----------+--------------+----------------------+------------------------+---------+
Got 1 rows (time spent 1.732ms/2.91408ms)

Wed, 08 Jan 2025 11:18:14 CST

(root@nebula) [(none)]> 

如果能够顺利创建空间、定义标签并插入节点,则说明安装成功。例如,创建空间的命令如下:

(root@nebula) [(none)]> CREATE SPACE IF NOT EXISTS my_space (vid_type = FIXED_STRING(30));
Execution succeeded (time spent 1.542ms/2.076204ms)
(root@nebula) [(none)]> 

定义标签和插入节点的命令可参考官方文档中的 nGQL 语法进行操作。若都能正常执行且返回预期结果,那么恭喜你,NebulaGraph 已成功安装并可正常使用。

六、安装 NebulaGraph Studio:可视化数据洞察

NebulaGraph Studio 是 NebulaGraph 的可视化工具,它为用户提供了直观便捷的数据管理和查询界面。我们可以从官方 CDN 地址下载 RPM 包并安装。

(一)下载 NebulaGraph Studio

使用 wget 命令下载:

wget https://oss - cdn.nebula - graph.com.cn/nebula - graph - studio/3.8.0/nebula - graph - studio - 3.8.0.x86_64.rpm

下载完成后,执行安装命令:

rpm -ivh --prefix=/opt/app/nebula - graph - studio nebula - graph - studio - 3.8.0.x86_64.rpm

下载过程示例如下:

[root@instance2 soft]# wget https://oss - cdn.nebula - graph.com.cn/nebula - graph - studio/3.8.0/nebula - graph - studio - 3.8.0.x86_64.rpm
--2025-01-08 10:13:04--  https://oss - cdn.nebula - graph.com.cn/nebula - graph - studio/3.8.0/nebula - graph - studio - 3.8.0.x86_64.rpm
Resolving oss - cdn.nebula - graph.com.cn (oss - cdn.nebula - graph.com.cn)... 220.181.167.219
Connecting to oss - cdn.nebula - graph.com.cn (oss - cdn.nebula - graph.com.cn)|220.181.167.219|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 27310960 (26M) [application/x - rpm]
Saving to: ‘nebula - graph - studio - 3.8.0.x86_64.rpm’

100%[======================================================================================>] 27,310,960  15.0MB/s   in 1.7s   

2025-01-08 10:13:07 (15.0 MB/s) - ‘nebula - graph - studio - 3.8.0.x86_64.rpm’ saved [27310960/27310960]

[root@instance2 soft]# 

(二)安装 NebulaGraph Studio

执行安装命令后,系统会自动进行安装:

[root@instance2 soft]# rpm -ivh --prefix=/opt/app/nebula - graph - studio nebula - graph - studio - 3.8.0.x86_64.rpm
Preparing...                          ################################# [100%]
Start installing NebulaGraph Studio now...
Updating / installing...
   1:nebula - graph - studio - 3.8.0-1      ################################# [100%]
NebulaGraph Studio has been installed.
Created symlink from /etc/systemd/system/multi - user.target.wants/nebula - graph - studio.service to /usr/lib/systemd/system/nebula - graph - studio.service.
NebulaGraph Studio started automatically.
[root@instance2 soft]# 

如果希望安装在默认路径下,可执行:

sudo rpm -ivh nebula - graph - studio - 3.8.0.x86_64.rpm

(三)浏览器中访问登录

在浏览器地址栏输入http://127.0.0.1:7001/login ,若页面成功加载出 NebulaGraph Studio 的登录界面,意味着部署和启动顺利完成。首次登录时,需根据系统提示设置用户名和密码。登录成功后,将进入 NebulaGraph Studio 的主界面,在这里可以直观地管理图空间、执行查询语句、可视化展示图数据结构等操作。

(四)报错及解决办法

  1. 安装报错
    安装过程中可能会遇到报错情况,例如:
[root@instance2 soft]# rpm -ivh --prefix=/opt/app/nebula - graph - studio nebula - graph - studio - 3.8.0.x86_64.rpm
Preparing...                          ################################# [100%]
/var/tmp/rpm - tmp.w5nIeb: line 2: type: lsof: not found
Install failed for the reason: the command lsof required
error: %pre(nebula - graph - studio - 3.8.0 - 1.x86_64) scriptlet failed, exit status 1
error: nebula - graph - studio - 3.8.0 - 1.x86_64: install failed
[root@instance2 soft]# 

上述报错提示缺少lsof命令。
2. 报错缺少 lsof,安装 lsof
为解决此问题,可通过包管理器安装lsof。在 CentOS 系统上,执行以下命令:

[root@instance2 soft]# yum install lsof

安装过程中,系统会自动解析依赖关系并下载安装lsof及其相关依赖包。安装完成后,即可解决因缺少lsof导致的安装失败问题。
3. 重新尝试安装 nebula - graph - studio
安装好lsof后,再次执行 NebulaGraph Studio 的安装命令:

[root@instance2 soft]# rpm -ivh --prefix=/opt/app/nebula - graph - studio nebula - graph - studio - 3.8.0.x86_64.rpm

此时,安装过程将顺利进行,NebulaGraph Studio 将成功安装到指定路径或默认路径下。

性能优化建议

  • 调优 JVM 参数:NebulaGraph 的 Graph 服务基于 Java 开发,合理调整 JVM 的堆大小和其他相关参数对性能提升效果显著。例如,通过修改JAVA_OPT环境变量来调整堆内存大小,可参考以下命令:
  • 上述命令将 JVM 的初始堆内存和最大堆内存均设置为 4GB,具体数值应根据服务器实际内存资源和业务负载进行调整。若业务数据量较大且查询复杂,适当增大堆内存可减少 GC(垃圾回收)次数,提升服务响应速度。
  • 合理规划分区与副本:根据业务特点和数据分布情况精心设计分区策略和副本因子。对于读多写少的业务场景,可适当增加副本数量以提高读性能;对于写操作频繁的场景,则需平衡分区数量和副本数量,避免因过多副本同步导致写性能下降。例如,在创建图空间时可指定分区数量和副本因子:
  • CREATE SPACE my_space (vid_type = FIXED_STRING(30), partition_num = 16, replica_factor = 3);
    
  • 上述命令创建了一个名为my_space的图空间,设置了 16 个分区和 3 个副本,可根据实际业务需求灵活调整这些参数。
  • 监控与报警:部署监控系统实时跟踪 NebulaGraph 的运行状态至关重要。可使用 NebulaGraph 自带的监控指标,也可集成第三方监控工具如 Prometheus 和 Grafana。通过监控 CPU 使用率、内存使用率、磁盘 I/O、网络流量、查询响应时间等关键指标,及时发现潜在问题。同时,设置合理的报警阈值,当指标超出阈值时,通过邮件、短信等方式及时通知运维人员,以便快速响应和处理问题,保障系统的稳定性和可用性。

常见问题及解决方案

  1. 无法启动服务
    • 检查日志文件:NebulaGraph 的日志文件位于/var/log/nebula/目录下(安装路径自定义时,日志路径可能不同)。通过查看nebula - metad.lognebula - graphd.lognebula - storaged.log文件中的错误信息,能够定位服务启动失败的原因。例如,若nebula - graphd.log中出现 “Failed to bind to port 9669: Address already in use”,则表明 9669 端口已被其他进程占用,需要停止占用该端口的进程或修改 NebulaGraph 的 Graph 服务端口配置。
    • 确认防火墙规则:确保防火墙允许 NebulaGraph 所需的端口通信。NebulaGraph 默认使用 9559 端口用于 Meta 服务、9669 端口用于 Graph 服务、9779 端口用于 Storage 服务。在 CentOS 系统上,可通过以下命令开放端口:
firewall - cmd --zone=public --add - port=9559/tcp --permanent
firewall - cmd --zone=public --add - port=9669/tcp --permanent
firewall - cmd --zone=public --add - port=9779/tcp --permanent
firewall - cmd --reload
  1. 连接超时
    • 检查白名单设置:确保客户端 IP 地址已被正确添加到 NebulaGraph 的白名单中。若未启用身份认证,可通过修改nebula - graphd.conf配置文件中的--whitelist参数来添加允许连接的 IP 地址段。例如:
--whitelist="192.168.1.0/24,10.0.0.0/8"

上述配置允许192.168.1.0网段和10.0.0.0网段的 IP 地址连接到 Graph 服务。

  • 优化查询复杂度或分批提交请求:如果查询语句过于复杂,可能导致连接超时。尝试简化查询逻辑,或者将大查询拆分成多个小查询分批提交。例如,对于一个涉及大量数据扫描和复杂关联的查询,可通过增加索引、减少不必要的过滤条件等方式优化查询性能;对于批量插入数据操作,可采用分批提交的方式,避免一次性提交过多数据导致连接超时。
  1. 性能瓶颈
    • 分析慢查询日志:NebulaGraph 的 Graph 服务会记录慢查询日志,通过分析slow_query.log文件,识别出执行时间较长的查询语句。针对这些慢查询,可通过优化查询语句、添加合适的索引、调整查询执行计划等方式进行优化。例如,若查询语句频繁进行全表扫描,可根据查询条件为相关字段添加索引,以加快查询速度。
    • 增加硬件资源或调整配置参数:若系统资源(如 CPU、内存、磁盘 I/O)已接近饱和,可考虑增加硬件资源,如升级 CPU、增加内存或更换高速磁盘。同时,也可通过调整 NebulaGraph 的配置参数来优化性能。例如,适当增加nebula - storaged.conf中的--rocksdb_max_background_jobs参数值,可提高 Storage 服务的 I/O 并发处理能力,但需根据实际硬件资源情况谨慎调整,避免过度消耗资源导致系统不稳定。

总结

       本篇博客小支同学详细介绍了如何使用 RPM 包在 CentOS 系统上安装 NebulaGraph,并简要介绍了其配置、启动、连接以及相关工具(nebula - console 和 NebulaGraph Studio)的安装使用方法,同时分享了性能优化建议和常见问题解决方案。NebulaGraph 作为一款开源、分布式图数据库,具备高性能、高可用性和可扩展性等优势,能够出色地处理超大规模数据集和复杂数据关系。通过本文的介绍,相信读者已经掌握了在 CentOS 系统上安装和使用 NebulaGraph 的基本技能,为进一步深入学习和应用打下了坚实基础。希望这篇文章能够帮助大家更好地理解和掌握 NebulaGraph 的安装过程。随着实践经验的积累,相信友友们会发现更多有趣的功能和技术细节,从而进一步挖掘图数据库的巨大潜力。

  1. 安装流程:先介绍 NebulaGraph 优势及安装意义,接着阐述安装前准备工作,如确认系统版本、安装依赖软件包、从阿里云 OSS 下载安装包。随后详细说明创建安装目录、使用 rpm 命令安装、编辑配置文件的操作步骤。
  2. 服务管理:利用 nebula.service 脚本管理服务,可进行启动、停止、查看状态等操作,还介绍了启动报错时的解决办法,如参考官方文档、添加 Storage 主机等。
  3. 工具使用:介绍命令行客户端 nebula-console 和可视化工具 NebulaGraph Studio 的安装、配置及使用方法,包括下载、重命名、授权以及连接 NebulaGraph 的操作,还提及安装 NebulaGraph Studio 时可能遇到的问题及解决办法。
  4. 优化与问题解决:分享性能优化建议,如调优 JVM 参数、规划分区与副本、部署监控系统等。针对常见问题,如无法启动服务、连接超时、性能瓶颈等,给出检查日志文件、确认防火墙规则、优化查询等解决方案。
注:在实际应用过程中,若遇到更多具体的问题或需要进一步的帮助,请友友们随时查阅官方文档或在 NebulaGraph 社区寻求支持~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2311540.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MetaGPT发布的MGX与Devin深度对比

家人们&#xff0c;搞编程的都知道&#xff0c;工具选对了&#xff0c;效率能翻倍&#xff01;今天必须给大伙唠唠MetaGPT发布的MGX编程助手和Devin编程助手 。 先看MGX&#xff0c;简直是编程界的王炸&#xff01;它就像一个超神的虚拟开发团队&#xff0c;一堆智能助手分工明…

03.06 QT

一、使用QSlider设计一个进度条&#xff0c;并让其通过线程自己动起来 程序代码&#xff1a; <1> Widget.h: #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QThread> #include "mythread.h"QT_BEGIN_NAMESPACE namespace Ui {…

SpringUI:打造高质量Web交互设计的首选元件库

SpringUI作为一个专为Web设计与开发领域打造的高质量交互元件库&#xff0c;确实为设计师和开发者提供了极大的便利。以下是对SpringUI及其提供的各类元件的详细解读和一些建议&#xff1a; SpringUI概述 SpringUI集合了一系列预制的、高质量的交互组件&#xff0c;旨在帮助设…

鸿蒙Android4个脚有脚线

效果 min:number122max:number150Row(){Stack(){// 底Text().border({width:2,color:$r(app.color.yellow)}).height(this.max).aspectRatio(1)// 长Text().backgroundColor($r(app.color.white)).height(this.max).width(this.min)// 宽Text().backgroundColor($r(app.color.w…

夏门大学DeepSeek 手册:从社会大众到高校及企业的全面应用实践研究(附 PDF 下载)

这 3 份手册分别从 DeepSeek 大模型概念、技术与应用实践、DeepSeek 大模型赋能高校教学和科研、DeepSeek 大模型及其企业应用实践-企业人员的大模型宝典几个角度进行全面分析&#xff0c;可以结合着清华、北大系列相互对照着学习。 清华北大推出的 DeepSeek 教程&#xff08;…

策略模式详解:实现灵活多样的支付方式

多支付方式的实现&#xff1a;策略模式详解 策略模式&#xff08;Strategy Pattern&#xff09;是一种行为设计模式&#xff0c;它定义了一系列算法&#xff0c;并将每个算法封装起来&#xff0c;使它们可以互换使用。策略模式使得算法可以独立于使用它的客户端变化。本文将通…

【Java篇】算术如诗,逻辑似梦:Java 编程中的运算符探寻

文章目录 Java 运算符&#xff1a;在计算与逻辑之中追寻编程的哲理1.前言2. 算术运算符2.1 基本四则运算符&#xff1a;加减乘除&#xff08; - * / %&#xff09;2.2 除法与取余2.3 增量运算符&#xff08; --&#xff09;2.4 自增/自减运算符 3. 关系运算符3.1 关系运算符 4.…

【大模型系列篇】国产开源大模型DeepSeek-V3技术报告解析

DeepSeek-V3技术报告 目录 DeepSeek-V3技术报告 1. 摘要 2. 引言 3. DeepSeek V3 架构 3.1 基础架构 3.1.1. 多头潜在注意力 3.1.2. DeepSeekMoE和无辅助损失的负载均衡 3.2 多令牌预测 4. 基础设施 4.1 计算集群 4.2 训练框架 4.2.1. DualPipe算法与计算通信协同优…

双足机器狗开发:Rider - Pi

双足机器狗开发:Rider - Pi https://github.com/YahboomTechnology/Rider-Pi-Robot 项目介绍 Rider - Pi是一款为开发者、教育工作者和机器人爱好者设计的桌面双轮腿式机器人,它基于树莓派CM4核心模块构建,具备多种先进功能和特点: 硬件特性 核心模块:采用树莓派CM4核…

以商业思维框架为帆,驭创业浪潮前行

创业者踏入商海&#xff0c;如同航海家奔赴未知海域&#xff0c;需有清晰的思维罗盘指引方向。图中“为什么—用什么—怎么做—何人做—投入产出”的商业框架&#xff0c;正是创业者破解商业谜题的密钥&#xff0c;从需求洞察到落地执行&#xff0c;为创业之路铺就逻辑基石。 …

ApoorvCTF Rust语言逆向实战

上周参加了国外的比赛&#xff0c;名称叫&#xff1a;ApoorvCTF 看一下老外的比赛跟我们有什么不同&#xff0c;然后我根据国内比赛对比发现&#xff0c;他们考点还是很有意思的&#xff0c;反正都是逆向&#xff0c;哈哈哈 ‍ Rusty Vault 题目描述&#xff1a; In the h…

Ubuntu20.04本地配置IsaacLab 4.2.0的G1训练环境(二):训练与推理

Ubuntu20.04本地配置IsaacLab4 4.2.0的G1训练环境&#xff08;二&#xff09;&#xff1a;训练与推理 训练推理 写在前面&#xff0c;本文档的实现需要IsaacLab的成功安装&#xff0c;可参考&#xff08;一&#xff09;。 训练 在IsaacLab目录下&#xff0c;isaaclab的conda虚…

《实战AI智能体》深度解析Deepseek可以做什么?

一、Deepseek平台功能全景图 Deepseek作为新一代人工智能开发平台,通过整合多项核心技术能力,构建了覆盖多领域的AI服务体系。该平台不仅为终端用户提供智能化解决方案,更为开发者群体打造了高效的技术支撑平台,形成了完整的AI应用开发生态。 二、核心功能模块解析 2.1 智…

Android 仿 DeepSeek 思考效果:逐字显示 AI 生成内容,支持加粗、颜色,复制内容

最近特别火的非AI莫属了&#xff0c;对我们高级搬运工太友好了&#xff0c;不管是网页端还是APP端&#xff0c;输入你要问的问题&#xff0c;都会逐字给你显示出来&#xff0c;有的还会加粗&#xff0c;这种效果看着不错&#xff0c;今天就带大家一起来实现。有啥更好的建议请在…

联合索引关于In和范围查询影响索引使用的情况分析

索引类型 1、unique &#xff0c;唯一索引 2、normal&#xff0c;普通索引 3、fulltext, 全文索引 4、spatial&#xff0c;空间索引 样例 三个字段的联合索引&#xff0c;走一个字段是key_len是5&#xff0c;三个是15. 联合索引关于 使用in是不影响后续列 范围查询大于或小于…

pytest框架 核心知识的系统复习

1. pytest 介绍 是什么&#xff1a;Python 最流行的单元测试框架之一&#xff0c;支持复杂的功能测试和插件扩展。 优点&#xff1a; 语法简洁&#xff08;用 assert 替代 self.assertEqual&#xff09;。 自动发现测试用例。 丰富的插件生态&#xff08;如失败重试、并发执…

【人工智能】实现【DeepSeek】使用【Anything LLM】并使用本地知识库回答!本地部署告别服务器崩溃的烦恼!

本地知识库回答不准确(Anything LLM + Ollama ) 很多动手能力强的人根据网上的教程,部署了自己的本地知识库。但是发现知识库回答的不准确,甚至答非所问。 先看部署知识库的对比效果,本地大模型为deepseek1.5b 配置为 Anything LLM + Ollama,知识库内容为两篇手机公司文…

RV1126+FFMPEG多路码流监控项目

一.项目介绍&#xff1a; 本项目采用的是易百纳RV1126开发板和CMOS摄像头&#xff0c;使用的推流框架是FFMPEG开源项目。这个项目的工作流程如下(如上图)&#xff1a;通过采集摄像头的VI模块&#xff0c;再通过硬件编码VENC模块进行H264/H265的编码压缩&#xff0c;并把压缩后的…

人工智能之数学基础:对线性代数中逆矩阵的思考?

本文重点 逆矩阵是线性代数中的一个重要概念,它在线性方程组、矩阵方程、动态系统、密码学、经济学和金融学以及计算机图形学等领域都有广泛的应用。通过了解逆矩阵的定义、性质、计算方法和应用,我们可以更好地理解和应用线性代数知识,解决各种实际问题。 关于逆矩阵的思…

计算机网络(1) 网络通信基础,协议介绍,通信框架

网络结构模式 C/S-----客户端和服务器 B/S -----浏览器服务器 MAC地址 每一个网卡都拥有独一无二的48位串行号&#xff0c;也即MAC地址&#xff0c;也叫做物理地址、硬件地址或者是局域网地址 MAC地址表示为12个16进制数 如00-16-EA-AE-3C-40 &#xff08;每一个数可以用四个…