技术分享
构建 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 架构。
注意 CMake 版本不能太低(最好大于等于 3.15),否则在 pack_Centos.sh 脚本执行 cmake 时会失败哦!
具体步骤
1. 下载源码到编译机
我们以 /home/gaojianda/ 目录为例:
git clone -b release-3.7.0 https://github.com/vesoft-inc/nebula-studio.git
2. 修改文件内容
目前脚本和文件中使用的都是 x86_64 的,我们需要调整下: nebula-studio/scripts/rpm/CMakeLists.txt:x86_64 改为 aarch64
编译使用的 pack_CentOS.sh 脚本:x86_64 改为 aarch64
3. 找到编译脚本目录 scripts
我们需要先执行 build.sh,然后执行 pack_CentOS.sh,查看对应脚本信息。
build.sh:需要将此脚本和 setEventTracking.sh 拿到 nebula-studio 目录下执行,因为里面的命令都是相对 nebula-studio 目录的。
将脚本复制后位置图:
** 4. 执行 build.sh 脚本,注意此时必须保证编译机器是联网状态,因为 npm install 那一步会用到。**
执行完之后我们会发现多了两个目录:
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。
最后的编译打包目录结构为如下图:
6. 执行 pack_CentOS.sh
7. 查看结果
8. 部署验证
部署在 aarch64 上:
结论
通过按照本指南的步骤,您将成功在 ARM 架构上构建 Nebula Graph 3.3.0 和 Nebula Studio 3.7.0。初学者的尝试,希望大佬们多多指正。