docker環境部署Nebula Graph Database


安裝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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM