导航

docker环境部署Nebula Graph Database

Posted on 2021-12-10 14:49  蝈蝈俊  阅读(875)  评论(0编辑  收藏  举报

安装centos7

https://hub.docker.com/_/centos?tab=tags 选择你需要安装的centos版本,我选择的是 7.9.2009 版本。

% docker pull centos:centos7.9.2009
centos7.9.2009: Pulling from library/centos
2d473b07cdd5: Pull complete 
Digest: sha256:9d4bcbbb213dfd745b58be38b13b996ebb5ac315fe75711bd618426a630e0987
Status: Downloaded newer image for centos:centos7.9.2009
docker.io/library/centos:centos7.9.2009

## 查看本地镜像
% docker images
REPOSITORY   TAG              IMAGE ID       CREATED        SIZE
centos       centos7.9.2009   eeb6ee3f44bd   2 months ago   204MB
...

启动、配置 centos7.9.2009镜像

## 启动镜像
 % docker run --privileged=true -it centos:centos7.9.2009

## 安装必须软件
yum update
yum install wget
yum install vim
yum install iproute 
yum install net-tools
yum install firewalld

注意: Centos 7 使用命令 ip addr 查看IP地址。

保存镜像

## 在未退出来之前,另开一个窗口,看正在运营的容器ID:
% docker ps
CONTAINER ID   IMAGE                   COMMAND       CREATED          STATUS          PORTS     NAMES
5a1a1bdde079   centos:centos7.9.2009   "/bin/bash"   21 seconds ago   Up 20 seconds             infallible_mahavira

## 保存这个容器
% docker commit 5a1a1bdde079 centos:ng
sha256:2e6886deadfba545e3e07bbe340d96dc3ed42a32f3566f281b4f5a5326c9c0cd

docker commit :从容器创建一个新的镜像。
docker commit [选项] <容器ID或容器名> [<仓库名>[:<标签>]]

下载及安装 Nebula Graph

## 下载
wget https://oss-cdn.nebula-graph.com.cn/package/2.6.1/nebula-graph-2.6.1.el7.x86_64.rpm
wget https://oss-cdn.nebula-graph.com.cn/package/2.6.1/nebula-graph-2.6.1.el7.x86_64.rpm.sha256sum.txt

## 安装
sudo rpm -ivh nebula-graph-2.6.1.el7.x86_64.rpm

如果不设置安装路径,默认安装路径为/usr/local/nebula/。

参考官方文档: https://docs.nebula-graph.com.cn/2.6.1/4.deployment-and-installation/2.compile-and-install-nebula-graph/2.install-nebula-graph-by-rpm-or-deb/

启动 Nebula Graph 服务

# /usr/local/nebula/scripts/nebula.service start all
[INFO] Starting nebula-metad...
[INFO] Done
[INFO] Starting nebula-graphd...
[INFO] Done
[INFO] Starting nebula-storaged...
[INFO] Done

参考官方文档: https://docs.nebula-graph.com.cn/2.6.1/4.deployment-and-installation/manage-service/

请勿使用kill -9 命令强制终止进程,否则可能较小概率出现数据丢失。

停止 Nebula Graph 服务

$ sudo /usr/local/nebula/scripts/nebula.service stop all
[INFO] Stopping nebula-metad...
[INFO] Done
[INFO] Stopping nebula-graphd...
[INFO] Done
[INFO] Stopping nebula-storaged...
[INFO] Done

查看服务状态

$ sudo /usr/local/nebula/scripts/nebula.service status all
[INFO] nebula-metad(de03025): Running as 634, Listening on 9559
[INFO] nebula-graphd(de03025): Running as 707, Listening on 9669
[INFO] nebula-storaged(de03025): Running as 741, Listening on 9779

Nebula Graph 服务由 Meta 服务、Graph 服务和 Storage 服务共同提供,这三种服务的配置文件都保存在安装目录的etc目录内,默认路径为/usr/local/nebula/etc/,用户可以检查相应的配置文件排查问题。

安装 Node.js

https://nodejs.org/zh-cn/download/

## 安装lsof命令
yum install lsof


wget https://nodejs.org/dist/v16.13.1/node-v16.13.1-linux-x64.tar.xz

## 

tar --strip-components 1 -xvf ./node-v16.13.1-linux-x64.tar.xz  -C /usr/local

## 测试安装
# node -v
v16.13.1

## node 及 npm 命令需要安装在 /usr/bin/目录下,以防出现 RPM 安装时 node 命令找不到的情况。 例如 nodejs12 默认目录为/opt/rh/rh-nodejs12,用户可以使用以下命令建立软连接:
$ sudo ln -s /opt/rh/rh-nodejs12/root/usr/bin/node /usr/bin/node
$ sudo ln -s /opt/rh/rh-nodejs12/root/usr/bin/npm /usr/bin/npm

解压缩时报
gzip: stdin: not in gzip format
tar: Child returned status 1
tar: Error is not recoverable: exiting now
可以看
https://blog.csdn.net/weixin_37657720/article/details/81117871
解决方案。
tar包压缩的时候用cvf参数,解压的时候用xvf参数
或压缩的时候用czvf参数,解压的时候用xzvf参数

安装及使用 Nebula Console

# 通过console连接命令:
# ./nebula-console -addr=127.0.0.1 -port=9669  -u=root -p=dds
Welcome to Nebula Graph!


# 加载测试数据集
nebula> :play nba

https://docs.nebula-graph.com.cn/2.6.1/2.quick-start/3.connect-to-nebula-graph/#_3

安装 nebula graph studio

# wget https://oss-cdn.nebula-graph.com.cn/nebula-graph-studio/3.1.0/nebula-graph-studio-3.1.0.x86_64.rpm

$ sudo rpm -i nebula-graph-studio-3.1.0.x86_64.rpm

# 当看到表示 PRM 版 Studio 已经成功启动。
egg started on http://0.0.0.0:7001
nohup:把输出追加到"nohup.out"

# 手动启动服务
# bash /usr/local/nebula-graph-studio/scripts/rpm/start.sh

# 手动停止服务
$ bash /usr/local/nebula-graph-studio/scripts/rpm/stop.sh



https://www.bookstack.cn/read/Nebula-Graph-Database-2.5.1-zh/526e79620d1f79f1.md?wd=Cloud%20Studio

把docker上服务的端口暴露出来。

# -p : 是容器内部端口绑定到指定的主机端口。

% docker run --privileged=true -it -p 7001:7001  centos:ng

% docker run --privileged=true -it -p 7001:7001 -p 9669:9669  centos:ng 

% docker ps                            
CONTAINER ID   IMAGE       COMMAND       CREATED          STATUS          PORTS                    NAMES
65f1878eb9c3   centos:ng   "/bin/bash"   15 minutes ago   Up 15 minutes   0.0.0.0:7001->7001/tcp   confident_lovelace

完成端口映射后,就可以在docker宿主机上访问docker容器的端口。

在host文件中我们有这样的

127.0.0.1 kubernetes.docker.internal

我们最终使用就可以用 http://kubernetes.docker.internal:7001/ 来使用。

使用流程

# 启动容器
% docker run --privileged=true -it -p 7001:7001 -p 9669:9669  centos:ng

# 启动nebula服务
/usr/local/nebula/scripts/nebula.service start all
/usr/local/nebula/scripts/nebula.service status all

# 启动 studio
bash /usr/local/nebula-graph-studio/scripts/rpm/start.sh

访问:
http://kubernetes.docker.internal:7001/
连接地址: kubernetes.docker.internal:9669
默认用户名 root 和任意密码

更详细的看手册:
https://docs.nebula-graph.com.cn/2.6.1

保存工作

docker ps

docker commit  fb44df0cbf8f  centos:ng 

停止服务

bash /usr/local/nebula-graph-studio/scripts/rpm/stop.sh
/usr/local/nebula/scripts/nebula.service stop all
exit