本文首發於 Nebula 公衆號:手把手教你從數據預處理開始體驗圖數據庫,由社區用戶 Jiayi98 供稿,分享了她離線部署 Nebula Graph、預處理 LDBC 數據集的經驗,是個對新手極度友好的手把手教你學 Nebula 分享。node
這不是一個標準的壓力測試,而是經過一個小規模的測試幫助我熟悉 Nebula 的部署,數據導入工具,查詢語言,Java API,數據遷移,以及集羣性能的一個簡單瞭解。nginx
全部的準備都須要找個有網的環境git
docker save xxx
命令將拉好的鏡像導出成 tar 包)$ rpm -ivh <rpm包>
$ systemctl start docker --啓動
$ systemctl status docker --查看狀態
複製代碼
$ mv docker-compose /usr/local/bin/ --把docker-compose文件移動到/usr/local/bin
$ chmod a+x /usr/local/bin/docker-compose --改權限
$ docker-compose -version
複製代碼
$ docker load <鏡像tar包>
$ docker image ls
複製代碼
$ sudo docker swarm init --advertise-addr <manager machine ip>
複製代碼
worker
的身份 join swarm
$ docker node ls
複製代碼
worker node
若是出現如下報錯:Error response from daemon: rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing dial tcp 172.16.9.129:2377: connect: no route to host"
github
通常是防火牆未關閉致使的(用如下方式關閉防火牆)。web
$ systemctl status firewalld.service
$ systemctl disable firewalld.service
複製代碼
docker-stack.yml
,並建立 nebula.env
-- nebula.env
TZ=UTC
USER=root
複製代碼
$ docker stack deploy <stack name> -c docker-stack.yml
複製代碼
這裏附帶一些我 Debug / 檢查方法:docker
$ docker service ls --查看服務狀態
$ docker service ps <NAME/ID> --查看某一個具體的狀態
$ docker stack ps --no-trunc <stack name> --查看 stack 裏全部的進程
複製代碼
代碼文件夾裏是 v1,有一個 v2 的文件夾裏是 v2數據庫
$ cd nebula-web-docker
複製代碼
或apache
$ cd nebula-web-docker/v2
$ docker-compose up -d -- 構建並啓動 Studio 服務;
複製代碼
其中,-d
表示在後臺運行服務容器centos
啓動成功後,在瀏覽器地址欄輸入:http://ip address:7001
瀏覽器
我用的 LDBC。
這裏須要說明一下,要注意你用的 nebula 版本是否支持 「|」
做爲分隔符。
ldbc 的全部 vertex 和 edge 的 ID / index 都有問題,須要處理一下使得全部 vertex 的 ID 變爲 unique key。
個人作法是每一個 vertex 我都給一個前綴,好比 person,原始 ID 爲 933,變爲 p933。(爲了試用一下我本身搭的 CDH 我用 Spark 作的數據預處理,處理過的數據放在 HDFS 以便後面用 nebula-exchange 導入)
備註:Nebula 不推薦使用 HDD,但我也沒有 SSD, 最後測試結果證實 HDD 真的很弱。
3 節點,服務分佈以下
2 圖空間:
導入 Nebula 以後,佔用儲存空間共約 76 G,其中 wal 文件佔 2.2 G 左右。
沒有作導入的測試,一部分用了 Nebula-Importer 導入,一部分用了 Exchange 導入:
測試方法:
timeout
參數調高至 120 秒後的結果,後來在終端執行了一次三度發現要三百多秒。最後,但願這份文檔對和我同樣的小白們有幫助,也感謝一直以來社區和官方的答疑解惑。
Nebula 真的讓用戶感到真的很是 supportive,在學習使用 Nebula 的過程當中我也收穫了不少~
交流圖數據庫技術?加入 Nebula 交流羣請先填寫下你的 Nebulae 名片,Nebula 小助手會拉你進羣~~
要不要看看【美團的圖數據庫系統】、【微衆銀行的數據治理方案】以及其餘大廠的風控、知識圖譜實踐?Follow Nebula 公衆號:NebulaGraphCommunity 回覆「PPT」便可習得大廠實踐技能 ^^