当前位置: 首页 > news >正文

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

前言

        在当今大数据时代,处理复杂关系数据的需求与日俱增,图数据库应运而生并逐渐崭露头角。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 -c8  Intel(R) Xeon(R) Gold 5118 CPU @ 2.30GHz
[root@instance2 ~]# free -htotal        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 nebulaWelcome!(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 nebulaWelcome!(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 社区寻求支持~

相关文章:

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

前言 在当今大数据时代&#xff0c;处理复杂关系数据的需求与日俱增&#xff0c;图数据库应运而生并逐渐崭露头角。NebulaGraph 作为一款高性能、分布式且易扩展的图数据库&#xff0c;专为应对大规模图数据处理而精心打造。它不仅具备丰富的查询语言&#xff0c;还拥有强大高效…...

nginx作为下载服务器配置

一、Nginx 作为下载服务器配置笔记 基本配置指令 server块配置&#xff1a; 在 Nginx 的配置文件&#xff08;通常是/etc/nginx/nginx.conf或在/etc/nginx/conf.d/目录下的特定配置文件&#xff09;中&#xff0c;首先需要定义一个server块来监听特定的端口并处理下载请求。例如…...

第六课:数据存储三剑客:CSV/JSON/MySQL

在Python的数据存储与处理领域&#xff0c;CSV、JSON和MySQL被广大开发者誉为“数据存储三剑客”。它们各自在不同的场景下发挥着重要作用&#xff0c;无论是简单的数据交换、轻量级的数据存储&#xff0c;还是复杂的关系型数据库管理&#xff0c;都能找到它们的身影。本文将详…...

Dify 开源大语言模型应用开发平台使用(一)

文章目录 一、创建锂电池专业知识解答应用1.1 应用初始化二、核心功能模块详解2.1 知识库构建2.2 工作流与节点编排节点类型说明工作流设计示例:锂电池选型咨询2.3 变量管理三、测试与调试3.1 单元测试3.2 压力测试3.3 安全验证四、部署与优化建议4.1 部署配置4.2 持续优化结论…...

PyQt高亮代码

PyQt高亮代码 安装 Pygments支持的格式支持的样式详解参考 Qt中使用 安装 Pygments Pygments 是Python中的一个高亮代码的包&#xff0c;挺好用的 pip install Pygments支持的格式 支持的格式比较多&#xff0c;不列出来了 # coding:utf-8 from pygments.lexers import get_all…...

小白学Agent技术[1]

文章目录 课程地址Agent介绍原理架构任务规划记忆工具使用程序开发范式的变化Agent开发注意事项 课程地址 Agent课程地址 Agent介绍 AI Agent&#xff08;人工智能代理、AI智能体&#xff09;&#xff0c;一种模拟人类智能行为的人工智能系统&#xff0c;以大模型语言&#…...

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

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

开源宝藏 Tigshop,开启电商新征程

在电商竞争愈发激烈的当下&#xff0c;一个强大且适配的商城系统是商家制胜的法宝。 Tigshop官网&#xff1a;Tigshop官网 - 开源商城系统Tigshop开源商城系统&#xff0c;支持b2b2c、多商户、多店铺、商家入驻、分销系统、跨境电商、连锁商城等解决方案&#xff0c;免费下载&…...

java多线程实现方式

目录 1. 继承 Thread 类 2. 实现 Runnable 接口 3. 实现 Callable 接口 4. 使用线程池 5. 使用 CompletableFuture&#xff08;Java 8&#xff09; 6. 使用 ForkJoinPool&#xff08;Java 7&#xff09; 7. 使用 Timer 和 TimerTask 8. 使用 ScheduledExecutorService …...

windows:curl: (60) schannel: SEC_E_UNTRUSTED_ROOT (0x80090325)

目录 1. git update-git-for-windows 报错2. 解决方案2.1. 更新 CA 证书库2.2. 使用 SSH 连接&#xff08;推荐&#xff09;2.3 禁用 SSL 验证&#xff08;不推荐&#xff09; 1. git update-git-for-windows 报错 LenovoLAPTOP-EQKBL89E MINGW64 /d/YHProjects/omni-channel-…...

python:pymunk + pygame 模拟六边形内小球弹跳运动

向 chat.deepseek.com 提问&#xff1a;编写 python 程序&#xff0c;用 pymunk, 有一个正六边形&#xff0c;围绕中心点缓慢旋转&#xff0c;六边形内有一个小球&#xff0c;六边形的6条边作为墙壁&#xff0c;小球受重力和摩擦力、弹力影响&#xff0c;模拟小球弹跳运动&…...

vulnhub靶场之【digitalworld.local系列】的vengeance靶机

前言 靶机&#xff1a;digitalworld.local-vengeance&#xff0c;IP地址为192.168.10.10 攻击&#xff1a;kali&#xff0c;IP地址为192.168.10.6 kali采用VMware虚拟机&#xff0c;靶机选择使用VMware打开文件&#xff0c;都选择桥接网络 这里官方给的有两种方式&#xff…...

shiro550-cve-2016-4437复现

shiro550-cve-2016-4437 复现环境&#xff1a;docker desktop idea远程调试jdk版本必须与容器里的jdk1.8.0_102 匹配上&#xff0c;下载资源翻我CC1链那篇文章 注意burpsuite的proxy listeners端口改一下别跟docker容器的重了。 ysoserial工具&#xff1a;https://github.c…...

【DeepSeek】Ubuntu快速部署DeepSeek(Ollama方式)

文章目录 人人都该学习的DeepSeekDeepSeek不同版本功能差异DeepSeek与硬件直接的关系DeepSeek系统兼容性部署方式选择部署步骤&#xff08;Ollama方式&#xff09;1.选定适合的deepseek版本2.环境准备3.安装Ollama4.部署deepseek5.测试使用 人人都该学习的DeepSeek DeepSeek 作…...

Windows 版本Nmap使用报错“无法打开device eth0”

背景 使用nmap在win10上进行扫描工作正常&#xff0c;换到win server 2012 r2以后&#xff0c;扫描报错“无法打开device eth0” 使用了重装、重启大法&#xff0c;未彻底解决 PS&#xff1a;这台服务器之前完装过wireshark&#xff0c;实际已经安装了npcap 解决步骤 查询了…...

java字符串

字符串构造 1.使用常量串构造 String h1 "hello";System.out.println(h1); 2.new对象 String h2 new String("hello");System.out.println(h2); 3.使用字符数组构造 char[] array {h,e,l,l,o};String h3 new String(array);System.out.println(h3);…...

Uniapp 页面返回不刷新?两种方法防止 onShow 触发多次请求!

目录 前言1. 变量&#xff08;不生效&#xff09;2. 延迟&#xff08;生效&#xff09; 前言 &#x1f91f; 找工作&#xff0c;来万码优才&#xff1a;&#x1f449; #小程序://万码优才/r6rqmzDaXpYkJZF 在 Uniapp 中&#xff0c;使用 onShow() 钩子来监听页面显示&#xff0…...

鸿蒙生态日日新,夸克、顺丰速运、驾校一点通等多款应用功能更新

3月5日鸿蒙生态日日新PLOG&#xff1a;吉事办、健康甘肃等政务服务App上架原生鸿蒙应用市场&#xff1b;夸克、顺丰速运、驾校一点通等多款应用功能更新。...

库制作与原理

什么是库 库是写好的现有的&#xff0c;成熟的&#xff0c;可以复用的代码。现实中每个程序都要依赖很多基础的底层库&#xff0c;不可能每个人的代码都从零开始&#xff0c;因此库的存在意义非同寻常。本质上来说库是一种可执行代码的二进制形式&#xff0c;可以被操作系统载入…...

《量子Java:从超导芯片到光子计算的编程革命》——解析Google量子AI中心的混合架构,揭秘如何用Java控制量子比特!

标题:《量子Java:从超导芯片到光子计算的编程革命》——解析Google量子AI中心的混合架构,揭秘如何用Java控制量子比特! 引言:当Java代码撞上量子叠加态——Google量子AI中心的0.003秒奇迹 Google量子AI中心首次实现Java程序对1200量子比特光量子芯片的实时控制,仅耗时3毫…...

音频3A测试--AGC(自动增益)和NS(降噪)测试

一、测试前期准备 一台电脑&#xff1a;用于作为控制播放和录制数据&#xff1b; 一台音频处理器(调音台)&#xff1a;控制每个通道播放的数据&#xff0c;如噪声、人工头、模拟设备B输入的数据、收集标准麦克风&#xff0c;设备A处理完成的数据&#xff1b; 四个高保真音响&…...

点云数据处理--splat转3dtiles

文章目录 处理流程简介核心功能实现数据读取与格式转换数据读取splat转gltf 点云数据分割定义四叉树递归生成3dtiles瓦片 生成tileset.json递归生成tileset.json计算box 主函数调用渲染 下一步工作性能优化渲染效果调优其他 源码地址&#xff1a; github 处理流程简介 基本流…...

deepseek使用记录18——艺术的追问

一 好的&#xff0c;基于前面学习结果&#xff0c;再写一篇有艺术美的文章 《美的起义》 凌晨四点的茶摊在电子支付二维码下苏醒&#xff0c;蒸腾的水汽中浮动着八百年前建盏的釉色。老板娘把栀子花插在共享单车车筐里&#xff0c;花瓣的弧度与北宋汝窑青瓷的冰裂纹暗合&…...

ArcGIS操作:13 生成最小外接矩阵

应用情景&#xff1a;筛选出屋面是否能放下12*60m的长方形&#xff0c;作为起降场候选点&#xff08;一个不规则的形状内&#xff0c;判断是否能放下指定长宽的长方形&#xff09; 1、面积初步筛选 Area ≥ 720 ㎡ 面积计算见 2、打开 ArcToolbox → Data Management Tools …...

Manus AI Agent 技术解读:架构、机制与竞品对比

目录 1. Manus 是什么&#xff1f; 1.1 研发背景 1.2 技术特点 1.3 工具调用能力 1.4 主要应用场景 2. Manus 一夜爆火的原因何在&#xff1f; 2.1 技术突破带来的震撼 2.2 完整交付的产品体验 2.3 生态与开源策略 3. Manus 与其他 AI Agent 的对比分析 3.1 技术架构…...

npm 执行安装报错

Fix the upstream dependency conflict, or retry this command with --force or --legacy-peer-deps to accept an incorrect (and potentially broken) dependency resolution. 原因​ 主要的原因是 npm7 以上的版本&#xff0c;新增了一个对等依赖的特性&#xff0c;在以…...

Django 模型的逆向工程

模型的逆向工程&#xff1a;通过 inspectdb 命令从数据库表创建 Django 模型 在Django开发中&#xff0c;模型&#xff08;Model&#xff09;是定义数据库结构的关键组件。通常&#xff0c;我们根据业务需求先设计模型&#xff0c;然后通过Django的迁移系统创建相应的数据库表…...

启动wsl里的Ubuntu24报错:当前计算机配置不支持 WSL2,HCS_E_HYPERV_NOT_INSTALLED

问题&#xff1a;启动wsl里的Ubuntu24报错 报错信息&#xff1a; 当前计算机配置不支持 WSL2。 请启用“虚拟机平台”可选组件&#xff0c;并确保在 BIOS 中启用虚拟化。 通过运行以下命令启用“虚拟机平台”: wsl.exe --install --no-distribution 有关信息&#xff0c;请访…...

Electron:点击右键保存图片到本地

前期插件 前端请求后台的一种方法 npm install got -S用于获取ArrayBuffer文件类型 npm install image-type -S生成随机数 npm install randomstring -D增加右击事件 点击右击事件的时候加载菜单 const imageRightSave require("./ImageRightSave") // 创建右…...

C语言中0UL和1UL

0UL 表示 无符号长整型 0 1UL 表示 无符号长整型 1 如果不写UL后缀&#xff0c;系统默认为&#xff1a;int, 即&#xff0c;有符号整数。 数值常数分为&#xff1a;整型常数和浮点常数&#xff1b; 数值常数后缀不区分字母大小写&#xff1b; 1.整型常数的后缀&#xff1a…...

6. 机器人实现远程遥控(具身智能机器人套件)

1. 启动控制脚本 远程作到 Raspberry Pi 中&#xff0c;并运行以下脚本&#xff1a; conda activate lerobotpython lerobot/scripts/control_robot.py \--robot.typelekiwi \--control.typeremote_robot登录笔记本电脑上&#xff0c;同时运行以下脚本&#xff1a; conda ac…...

C++ 学生成绩管理系统

一、项目背景与核心需求 成绩管理系统是高校教学管理的重要工具,本系统采用C++面向对象编程实现,主要功能模块包括: 学生信息管理(学号/姓名/3门课程成绩) 成绩增删改查(CRUD)操作 数据持久化存储 统计分析与报表生成 用户友好交互界面 二、系统架构设计 1. 类结构设计 …...

网络安全配置截图 网络安全i

网络安全概念及规范 1.网络安全定义 网络安全的概述和发展历史 网络安全 广义的网络安全&#xff1a;Cyber Security&#xff08;网络空间安全&#xff09; 网络空间有独立且相互依存的信息基础设施和网络组成&#xff0c;包括互联网、电信网、计算机系统、嵌入式处理器和控…...

Facebook营销自动化—— Python脚本 + 代理IP实现内容高效分发

目录 1. 引言&#xff1a;内容分发与Facebook营销的现状与痛点 2. 环境搭建与前期准备 2.1 开发环境与工具选择 2.2 获取代理IP 2.3 Facebook账号与开发者平台配置 3. Facebook内容分发的基本流程与策略 3.1 内容规划与策略制定 3.2 内容分发方式选择 3.3 风控与风险防…...

Centos的ElasticSearch安装教程

由于我们是用于校园学习&#xff0c;所以最好是关闭防火墙 systemctl stop firewalld systemctl disable firewalld 个人喜欢安装在opt临时目录&#xff0c;大家可以随意 在opt目录下创建一个es-standonely-docker目录 mkdir es-standonely-docker 进入目录编辑yml文件 se…...

香港地区上线独立多用户电商平台系统需要注意哪些问题

在香港地区上线独立多用户电商平台系统时&#xff0c;需结合本地化需求、技术架构、法律合规及用户体验等多方面因素&#xff0c;以下是需要注意的关键问题及建议&#xff1a; 一、技术架构与服务器部署 服务器配置与带宽选择 根据业务规模选择合适的香港服务器配置&#xff0…...

元宇宙展厅应用场景有哪些?

元宇宙展厅作为元宇宙技术的重要应用场景之一&#xff0c;正在彻底改变人们的展示、学习与交流方式。其应用场景主要包括以下几个方面&#xff1a; 一、企业展览与营销 产品展示&#xff1a;企业可以利用元宇宙展厅搭建虚拟展示空间&#xff0c;通过高精度的3D建模和虚拟现实技…...

XGBoost常见面试题(五)——模型对比

XGBoost与GBDT的区别 机器学习算法中 GBDT 和 XGBOOST 的区别有哪些&#xff1f; - 知乎 基分类器&#xff1a;传统GBDT以CART树作为基分类器&#xff0c;xgboost还支持线性分类器&#xff0c;这个时候xgboost相当于带L1和L2正则化项的逻辑斯蒂回归&#xff08;分类问题&#…...

如何在WPS中接入DeepSeek并使用OfficeAI助手(超细!成功版本)

目录 第一步&#xff1a;下载并安装OfficeAI助手 第二步&#xff1a;申请API Key 第三步:两种方式导入WPS 第一种:本地大模型Ollama 第二种APIKey接入 第四步&#xff1a;探索OfficeAI的创作功能 工作进展汇报 PPT大纲设计 第五步&#xff1a;我的使用体验(体验建议) …...

重学 Android 自定义 View 系列(十一):文字跑马灯剖析

前言 一个可以横向滚动和纵向滚动的自定义文字跑马灯View&#xff0c;支持水平和垂直滚动、多段文本展示、点击事件回调等功能。 该View 由 ScrollTextView&#xff0c;改版而来&#xff0c;效果如下&#xff1a; 1. 功能介绍 ScrollTextView 是基于 SurfaceView 的自定义视…...

Android硬件加速原理解析

Android硬件加速原理解析 一、核心思想 ‌GPU与CPU分工‌ 硬件加速的本质是将‌图形渲染任务从CPU转移到GPU‌,利用GPU的并行计算能力处理像素填充、矩阵变换等密集型图形操作‌12。CPU负责逻辑计算,GPU专注于图形处理,避免单一资源瓶颈‌57。 ‌图形计算优化‌ GPU通过‌专…...

Oracle SQL优化实战要点解析(11)——索引、相关子查询及NL操作(1)

11.1. 充分利用索引有序特性,避免发生大表上的FTS,以及对中间大数据集的排序。 11.1.1. 适用场景 从一个或多个大表(例如:亿行级或TB级数据量)中过滤出全列大数据集(例如:数百万或千万行数据),对该大数据集按其中某列进行排序,最终,只取最前面的少部分数据(例如:…...

题解:AT_past202109_h 最短経路

思路 这一眼就是最短路的题目啊。 为什么不用 Dijkstra 用 死了的 SPFA。因为好写 。 这一题的数据比较小。可以暴力枚举最短路的起点&#xff0c;跑 SPFA&#xff0c;找到符合的直接输出&#xff0c;结束程序。随机数据下 SPFA 平均的时间复杂度为 O ( k n ) O(kn) O(kn)…...

JavaScript基础-算数运算符

在JavaScript编程中&#xff0c;算术运算符是构建程序逻辑的基础工具之一&#xff0c;它们用于执行基本的数学运算&#xff0c;如加法、减法、乘法和除法等。掌握这些运算符不仅有助于进行数值计算&#xff0c;也是编写复杂逻辑的前提条件。本文将详细介绍JavaScript中的各种算…...

Doris vs ClickHouse 企业级实时分析引擎怎么选?

Apache Doris 与 ClickHouse 同作为OLAP领域的佼佼者&#xff0c;在企业级实时分析引擎该如何选择呢。本文将详细介绍 Doris 的优势&#xff0c;并通过直观对比展示两者的关键差异&#xff0c;同时分享一个企业成功用 Doris 替换 ClickHouse 的实践案例&#xff0c;帮助您做出明…...

flask学习3-深入

flask学习-深入 flask学习-深入1. 应用程序结构和生命周期 — Flask 文档 (3.1.x)2.应用程序上下文 — Flask 文档 (3.1.x)3. 请求上下文 — Flask 文档 (3.1.x)上下文的生命周期手动推送上下文关于代理的注意事项4.使用蓝图的模块化应用程序 — Flask 文档 (3.1.x)5.扩…...

任务10:三层交换机配置

CSDN 原创主页&#xff1a;不羁https://blog.csdn.net/2303_76492156?typeblog三层交换机是指在OSI&#xff08;开放系统互连&#xff09;模型中的第三层网络层提供路由功能的交换机。它不仅具备二层交换机的交换功能&#xff0c;还能实现路由功能&#xff0c;提供更为灵活的网…...

XSD 对 XML 数据格式验证 java

xsd文件&#xff0c;文件名bean.xsd&#xff0c;放在当前java文件目录下 <?xml version"1.0" encoding"UTF-8"?> <xs:schema xmlns:xs"http://www.w3.org/2001/XMLSchema"><xs:element name"bean"><xs:comple…...

深度学习笔记——神经网络

本文为在拓尔思智能举办的训练营中学习内容的总结&#xff0c;部分内容摘自百度百科 个人在这里推荐一个好用的软件&#xff0c;Trae&#xff0c;主要是免费。 人工神经元是人工神经网络的基本单元。模拟生物神经元&#xff0c;人工神经元有1个或者多个输入&#xff08;模拟多…...

大语言模型学习--向量数据库

向量数据库 向量 向量是多维数据空间中的一个坐标点。 向量类型 图像向量 文本向量 语音向量 Embedding 非结构化数据转换为向量过程 通过深度学习训练&#xff0c;将真实世界离散数据&#xff0c;投影到高维数据空间上&#xff0c;通过数据在空间中间的距离体现真实世界…...