NebulaGraph 3.8 ARM64 编译部署

NebulaGraph 3.8 ARM64 编译部署

适用于:飞腾 FT-2000+ / 鲲鹏 等 ARM64 CPU + 麒麟/CentOS 系统


第一部分:编译机器准备

1.1 检查系统架构

uname -m
# 输出应该是:aarch64

1.2 安装 Docker

yum install -y docker
systemctl start docker
systemctl enable docker
docker --version

1.3 安装 Git

yum install -y git

第二部分:下载源码

2.1 创建工作目录

mkdir -p /opt/nebula-build
cd /opt/nebula-build

2.2 克隆 NebulaGraph 3.8 源码

git clone --branch release-3.8 https://github.com/vesoft-inc/nebula.git

2.3 确认源码下载成功

ls -la nebula/
# 应该能看到 CMakeLists.txt、src 等目录

第三部分:拉取编译镜像

3.1 拉取官方编译镜像

docker pull vesoft/nebula-dev:centos7

# 如果拉取失败或不支持 ARM64,尝试 Ubuntu 版本:
# docker pull vesoft/nebula-dev:ubuntu2004

3.2 确认镜像拉取成功

docker images | grep nebula-dev

第四部分:启动编译容器

4.1 创建安装目录

mkdir -p /opt/nebula-install

4.2 启动容器

docker run -ti \
  --security-opt seccomp=unconfined \
  -v /opt/nebula-build/nebula:/home/nebula \
  -v /opt/nebula-install:/opt/nebula-install \
  -w /home/nebula \
  --name nebula_build \
  vesoft/nebula-dev:centos7 \
  bash

参数说明:

参数 说明
--security-opt seccomp=unconfined 避免编译时被 kill
-v /opt/nebula-build/nebula:/home/nebula 挂载源码目录
-v /opt/nebula-install:/opt/nebula-install 挂载安装目录
--name nebula_build 容器名称

第五部分:容器内编译

以下命令在容器内执行

5.1 进入源码目录

cd /home/nebula

5.2 创建 build 目录

mkdir -p build
cd build

5.3 CMake 配置

cmake -DCMAKE_CXX_COMPILER=$TOOLSET_CLANG_DIR/bin/g++ \
      -DCMAKE_C_COMPILER=$TOOLSET_CLANG_DIR/bin/gcc \
      -DENABLE_WERROR=OFF \
      -DCMAKE_BUILD_TYPE=Release \
      -DENABLE_TESTING=OFF \
      -DCMAKE_INSTALL_PREFIX=/opt/nebula-install \
      ..

5.4 开始编译

# 12 核用 10 线程,预计 1-2 小时
make -j10

5.5 安装

make install

5.6 确认安装成功

ls -la /opt/nebula-install/
# 应该能看到 bin、etc、lib、lib64、scripts 等目录

5.7 退出容器

exit

第六部分:打包

6.1 确认文件已同步

ls -la /opt/nebula-install/

6.2 打包成 tar.gz

cd /opt
tar -czvf nebula-3.8-arm64.tar.gz nebula-install/

6.3 查看包大小

ls -lh nebula-3.8-arm64.tar.gz
# 大约 200-500MB

6.4 复制到 U 盘

# 假设 U 盘挂载在 /mnt/usb
cp nebula-3.8-arm64.tar.gz /mnt/usb/

第七部分:其他机器部署

在另外两台 ARM64 机器上执行

7.1 从 U 盘复制安装包

cp /mnt/usb/nebula-3.8-arm64.tar.gz /opt/

7.2 解压

cd /opt
tar -xzvf nebula-3.8-arm64.tar.gz

7.3 重命名目录(可选)

mv nebula-install nebula

7.4 配置环境变量

echo 'export PATH=/opt/nebula/bin:$PATH' >> /etc/profile
source /etc/profile

7.5 验证安装

nebula-graphd --version
nebula-storaged --version
nebula-metad --version

第八部分:集群配置(3 节点)

8.0 节点规划

节点 IP 角色
节点1 192.168.1.101 Meta + Storage + Graph
节点2 192.168.1.102 Meta + Storage + Graph
节点3 192.168.1.103 Meta + Storage + Graph

8.1 修改 Meta 配置

三台机器都要修改 /opt/nebula/etc/nebula-metad.conf

--meta_server_addrs=192.168.1.101:9559,192.168.1.102:9559,192.168.1.103:9559
--local_ip=本机IP
--data_path=/opt/nebula/data/meta

8.2 修改 Storage 配置

三台机器都要修改 /opt/nebula/etc/nebula-storaged.conf

--meta_server_addrs=192.168.1.101:9559,192.168.1.102:9559,192.168.1.103:9559
--local_ip=本机IP
--data_path=/opt/nebula/data/storage

8.3 修改 Graph 配置

三台机器都要修改 /opt/nebula/etc/nebula-graphd.conf

--meta_server_addrs=192.168.1.101:9559,192.168.1.102:9559,192.168.1.103:9559
--local_ip=本机IP

8.4 创建数据目录

mkdir -p /opt/nebula/data/meta
mkdir -p /opt/nebula/data/storage

8.5 启动服务(按顺序)

# 1. 先启动所有 Meta 服务(三台机器都执行)
/opt/nebula/scripts/nebula.service start metad
sleep 10

# 2. 再启动所有 Storage 服务(三台机器都执行)
/opt/nebula/scripts/nebula.service start storaged
sleep 10

# 3. 最后启动所有 Graph 服务(三台机器都执行)
/opt/nebula/scripts/nebula.service start graphd

8.6 检查服务状态

/opt/nebula/scripts/nebula.service status all

第九部分:验证集群

9.1 连接集群

/opt/nebula/bin/nebula-console -addr 192.168.1.101 -port 9669 -u root -p nebula

9.2 检查集群状态

SHOW HOSTS;
SHOW SPACES;

如果能看到 3 个 host,说明集群部署成功。