logo
企业版

技术分享

构建 Nebula Graph 3.3.0 和 Nebula Studio 3.7.0 在 ARM 架构上的指南

构建 Nebula Graph 3.3.0 NebulaGraph 是一款开源的、分布式的、易扩展的原生图数据库,能够承载数千亿个点和数万亿条边的超大规模数据集,并且提供毫秒级查询。

NebulaGraph Studio 是一款可以通过 Web 访问的开源图数据库可视化工具,搭配 NebulaGraph 内核使用,可提供 schema 模式管理、数据导入、编写 nGQL 查询等一站式服务。

Nebula Graph 3.3.0 编译

目前 NebulaGraph 支持 x86_64 和 aarch64,借鉴了古思为老师提供的相关资料。这块参考 https://github.com/vesoft-inc/nebula-dev-docker

详细步骤

1.拉取镜像或构建镜像

docker pull vesoft/nebula-dev:centos7 或者根据 Dockerfile 自己构建。

docker build -f Dockerfile -t vesoft/nebula-dev:centos7 .(我是通过这种方式生成的镜像,自动下载的有点慢,Dockerfile 就是参考资料里面 CentOS7 那个)

查看结果:docker images

Dockerfile

2. 在 ARM 机器上测试

通过参考资料 GitHub 上的 run.sh 脚本将本地目录的源码放到镜像里(nebula 源码位置 /home/gaojianda/docker/nebula),进入到镜像。

./run.sh /home/gaojianda/docker/nebula centos7

构建 Nebula Graph 3.3.0

这时我们就可以根据官网上的编译步骤进行编译了。这里可以参考对应的文档:https://docs.nebula-graph.com.cn/3.3.0/4.deployment-and-installation/2.compile-and-install-nebula-graph/1.install-nebula-graph-by-compiling-the-source-code/

为了节约时间,这里先放一个截图,大家照着操作就行:

 Nebula Studio 3.7.0

3. 接入 Jenkins

测试成功后可以把镜像打成 tar 包交给 Jenkins 管理人员,自己编写 Jenkins 触发执行后对应的编译脚本就行了。

docker save vesoft/nebula-dev:centos7 > nebula-3.3.0-arm-alpha-1.tar

Nebula Studio 3.7.0 编译

目前 nebula-studio-3.7.0 版本及以后版本支持 ARM 架构。

 Nebula Studio 3.7.0

注意 CMake 版本不能太低(最好大于等于 3.15),否则在 pack_Centos.sh 脚本执行 cmake 时会失败哦!

 Nebula Studio 3.7.0

具体步骤

1. 下载源码到编译机

我们以 /home/gaojianda/ 目录为例:

git clone -b release-3.7.0 https://github.com/vesoft-inc/nebula-studio.git

 Nebula Studio 3.7.0

2. 修改文件内容

目前脚本和文件中使用的都是 x86_64 的,我们需要调整下: nebula-studio/scripts/rpm/CMakeLists.txt:x86_64 改为 aarch64

 Nebula Studio 3.7.0

编译使用的 pack_CentOS.sh 脚本:x86_64 改为 aarch64

 Nebula Studio 3.7.0

3. 找到编译脚本目录 scripts

我们需要先执行 build.sh,然后执行 pack_CentOS.sh,查看对应脚本信息。

build.sh:需要将此脚本和 setEventTracking.sh 拿到 nebula-studio 目录下执行,因为里面的命令都是相对 nebula-studio 目录的。

将脚本复制后位置图:

 Nebula Studio 3.7.0

** 4. 执行 build.sh 脚本,注意此时必须保证编译机器是联网状态,因为 npm install 那一步会用到。**

执行完之后我们会发现多了两个目录:

 Nebula Studio 3.7.0

5. 根据 pack_CentOS.sh 脚本内容需要构造对应的路径。我们把 DIR 路径设置为 /home/gaojianda/package-studio:

mkdir -p /home/gaojianda/package-studio

根据脚本中 STUDIO=$DIR/source/nebula-graph-studio 需要在 /home/gaojianda/package-studio 目录下创建 source 目录,并将 nebula-studio 改名为 nebula-graph-studio 移动到 /home/gaojianda/package-studio/source 目录,并且需要把 pack_CentOS.sh 放到 /home/gaojianda/package-studio。

最后的编译打包目录结构为如下图:

 Nebula Studio 3.7.0

6. 执行 pack_CentOS.sh

 Nebula Studio 3.7.0

7. 查看结果

 Nebula Studio 3.7.0

8. 部署验证

部署在 aarch64 上:

 Nebula Studio 3.7.0

结论

通过按照本指南的步骤,您将成功在 ARM 架构上构建 Nebula Graph 3.3.0 和 Nebula Studio 3.7.0。初学者的尝试,希望大佬们多多指正。