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

引言

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

2. 在 ARM 机器上测试

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

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

这时我们就可以根据官网上的编译步骤进行编译了。这里可以参考对应的文档: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/

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

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 架构。

image

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

编译使用工具 版本
npm 6.14.18
node v14.21.3
golang go version go1.20.6 linux/arm64
cmake cmake version 3.19.8

具体步骤

1. 下载源码到编译机

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

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

image

2. 修改文件内容

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

image

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

3. 找到编译脚本目录 scripts

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

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

将脚本复制后位置图:

image

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

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

image

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

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

image

6. 执行pack_CentOS.sh

7. 查看结果

8. 部署验证

部署在 aarch64 上:

image

结论

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

本文正在参加 NebulaGraph 技术社区年度征文活动,征文详情:https://discuss.nebula-graph.com.cn/t/topic/13970

如果你觉得本文对你有所启发,记得给我点个 :heart: ,谢谢你的鼓励

10 个赞

好赞呢,感觉可以把内容体现在 studio 上的 GitHub action pr,让构建过程分发 arm64 的 二进制包,不过 Debian 的也需要对应的工作

好嘞,古老师,我弄下。

1 个赞

哇,新的 code contributor :star_struck: 期待期待~~~~ 不着急慢慢来哈~~~

:star_struck: 非常棒的分享,感谢不吃辣。

非常棒!!!!!!

:+1:

:+1:

:grinning:感谢古老师及各位大佬支持

1 个赞