圖數據庫 Nebula Graph 的安裝部署

      網友投稿 972 2025-03-31

      摘要:本文主要講述了如何部署 Nebula 安裝及集群配置


      Nebula Graph:一個開源的分布式圖數據庫。作為唯一能夠存儲萬億個帶屬性的節點和邊的在線圖數據庫,Nebula Graph 不僅能夠在高并發場景下滿足毫秒級的低時延查詢要求,還能夠實現服務高可用且保障數據安全性。

      本文目錄

      簡介

      Nebula 整體架構

      Meta Service

      Storage Service

      Graph Service

      安裝部署

      環境準備

      安裝

      配置

      單機運行

      集群部署

      測試集群

      簡介

      Nebula Graph 是開源的第三代分布式圖數據庫,不僅能夠存儲萬億個帶屬性的節點和邊,而且還能在高并發場景下滿足毫秒級的低時延查詢要求。不同于 Gremlin 和 Cypher,Nebula 提供了一種 SQL-LIKE 的查詢語言 nGQL,通過三種組合方式(管道、分號和變量)完成對圖的 CRUD 的操作。在存儲層 Nebula Graph 目前支持 RocksDB 和 HBase 兩種方式。

      感謝 Nebula Graph 社區 Committer 伊興路供稿本文。

      Nebula Graph整體架構

      Nebula Graph 主要有三個服務進程:

      Meta Service 是整個集群的元數據管理中心,采用 Raft 協議保證高可用。主要提供兩個功能:

      管理各種元信息,比如 Schema

      指揮存儲擴容和數據遷移

      圖數據庫 Nebula Graph 的安裝部署

      Storage Service 負責 Graph 數據存儲。圖數據被切分成很多的分片 Partition,相同 ID 的 Partition 組成一個 Raft Group,實現多副本一致性。Nebula Graph 默認的存儲引擎是 RocksDB 的 Key-Value 存儲。

      Graph Service 位于架構中的計算層,負責同 Console 等 Client 通信,解析 nGQL 的請求并生成執行計劃。執行計劃經過優化器優化之后,交與執行引擎執行。執行引擎會向 MetaService 請求點邊的 Schema 和向存儲引擎獲取點邊的數據。

      GraphService 是個無狀態的服務,可以無限的水平拓展,并且計算層的執行計劃最終會下發到數據節點執行。

      安裝部署

      Nebula Graph 提供兩種部署方式:單機和集群。單機部署主要用于測試和體驗使用,生產場景推薦集群方式。

      在單機上實踐或者測試 Nebula Graph 的最好方式是通過 Docker 容器運行,參照文檔拉取鏡像,并進入容器:

      $?docker?pull?vesoft/nebula-graph:latest ????$?docker?run?--rm?-ti?vesoft/nebula-graph:latest?bash

      進入容器之后首先啟動 Nebula 的所有 Services,再通過 Console 客戶端連接本容器內部的 graphd 服務來執行 nGQL 語句

      $?cd?/usr/local/nebula ????$?./scripts/nebula.service?start?all ????$?./bin/nebula?-u?user?-p?password ????(user@127.0.0.1)?[(none)]>?SHOW?HOSTS; ????=============================== ????|?Ip?????????|?Port??|?Status?| ????=============================== ????|?172.17.0.2?|?44500?|?online?| ????------------------------------- ????Got?1?rows?(Time?spent:?15621/16775?us)

      Nebula 支持編譯安裝和通過打包好的 Package 安裝。由于 Nebula 依賴較多,簡便起見推薦使用安裝包安裝。

      本文準備了 3 臺裝有 CentOS 7.5 系統的機器,IP 如下所示:

      192.168.8.14?#?cluster-14 ????192.168.8.15?#?cluster-15 ????192.168.8.16?#?cluster-16

      在每臺機器上下載對應的安裝包:

      $?wget?-O?nebula-1.0.0-beta.el7-5.x86_64.rpm?https://github.com/vesoft-inc/nebula/releases/download/v1.0.0-beta/nebula-1.0.0-beta.el7-5.x86_64.rpm

      此外由于 Nebula 的服務之間通信需要開放一些端口,所以可以臨時關掉所有機器上的防火墻: ?(具體使用端口見 /usr/local/nebula/etc/ 下面的配置文件)

      $?systemctl?disable?firewalld

      本文將按如下的方式部署 Nebula 的集群:

      -?cluster-14:?metad/storaged/graphd ??-?cluster-15:?metad/storaged ??-?cluster-16:?metad/storaged

      使用 rpm 安裝上步準備好的安裝包

      $?rpm?-ivh?nebula-*.rpm

      Nebula 默認的安裝目錄位于 /usr/local/nebula

      Nebula 的所有配置文件都位于 /usr/local/nebula/etc 目錄下,并且提供了三份默認配置。分別編輯這些配置文件:

      第一份配置文件:nebula-metad.conf

      metad 通過 raft 協議保證高可用,需要為每個 metad 的 service 都配置該服務部署的機器 ip 和端口。主要涉及 meta_server_addrs 和 local_ip 兩個字段,其他使用默認配置。 cluster-14 上的兩項配置示例如下所示:

      #?Peers ????--meta_server_addrs=192.168.8.14:45500,192.168.8.15:45500,192.168.8.16:45500 ????#?Local?ip ????--local_ip=192.168.8.14 ????#?Meta?daemon?listening?port ????--port=45500

      第二份配置文件:nebula-graphd.conf

      graphd 運行時需要從 metad 中獲取 schema 數據,所以在配置中必須顯示指定集群中 metad 的 ip 地址和端口選項 meta_server_addrs ,其他使用默認配置。 cluster-14 上的 graphd 配置如下:

      #?Meta?Server?Address ????--meta_server_addrs=192.168.8.14:45500,192.168.8.15:45500,192.168.8.16:45500

      第三份配置文件:nebula-storaged.conf

      storaged 也是使用的 raft 協議保證高可用,在數據遷移時會與 metad 通信,所以需要配置 metad 的地址和端口 meta_server_addrs 和本機地址 local_ip ,其 peers 可以通過 metad 獲得。 cluster-14 上的部分配置選項如下:

      #?Meta?server?address ????--meta_server_addrs=192.168.8.14:45500,192.168.8.15:45500,192.168.8.16:45500 ????#?Local?ip ????--local_ip=192.168.8.14 ????#?Storage?daemon?listening?port ????--port=44500

      cluster-14

      $?/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

      cluster-15/cluster-16

      $?/usr/local/nebula/scripts/nebula.service?start?metad ????[INFO]?Starting?nebula-metad... ????[INFO]?Done ????$?/usr/local/nebula/scripts/nebula.service?start?storaged ????[INFO]?Starting?nebula-storaged... ????[INFO]?Done

      注:部分用戶可能會遇到

      [WARN]?The?maximum?files?allowed?to?open?might?be?too?few:?1024

      可以自己修改 /etc/security/limits.conf

      登陸集群中的一臺,執行如下命令:

      $?/usr/local/nebula/bin/nebula?-u?user?-p?password?--addr?192.168.8.14?--port?3699 ????(user@192.168.8.14)?[(none)]>?SHOW?HOSTS; ????================================== ????|?Ip???????????|?Port??|?Status??| ????================================== ????|?192.168.8.14?|?44500?|?offline?| ????---------------------------------- ????Got?1?rows?(Time?spent:?3511/4024?us)

      附錄

      Nebula Graph:一個開源的分布式圖數據庫。

      GitHub:https://github.com/vesoft-inc/nebula

      知乎:https://www.zhihu.com/org/nebulagraph/posts

      微博:https://weibo.com/nebulagraph

      數據庫 數據庫

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:從百度百科到貝殼找房,大家每天都在用的知識圖譜到底是個什么鬼?
      下一篇:包含excel表單元字下劃線的詞條
      相關文章
      亚洲精品人成网在线播放影院| 亚洲国产超清无码专区| 亚洲 日韩 色 图网站| 亚洲精品亚洲人成在线观看麻豆| 亚洲国产成人片在线观看| 亚洲人成网站在线播放vr| 国产亚洲精品国产| 亚洲精品无码高潮喷水在线| 国产亚洲综合成人91精品 | 国产啪亚洲国产精品无码 | 亚洲精品第一国产综合精品| 亚洲三级电影网址| 精品亚洲A∨无码一区二区三区| 婷婷亚洲久悠悠色悠在线播放 | 日韩国产精品亚洲а∨天堂免| 久久精品国产亚洲AV天海翼| 18禁亚洲深夜福利人口| 国产成人亚洲综合无| 亚洲国产日韩成人综合天堂| 中文字幕亚洲综合久久菠萝蜜| 亚洲中文久久精品无码| 久久被窝电影亚洲爽爽爽| 久久青青草原亚洲AV无码麻豆| 亚洲国产成人久久精品动漫| 337p日本欧洲亚洲大胆色噜噜| 亚洲综合区图片小说区| 亚洲一区二区三区免费视频| 午夜在线a亚洲v天堂网2019| 亚洲а∨精品天堂在线| 亚洲国产午夜福利在线播放| 亚洲熟妇无码八AV在线播放| 亚洲av无码专区在线播放| 久久亚洲AV无码精品色午夜麻豆| 亚洲精品**中文毛片| 中文字幕亚洲综合小综合在线| 亚洲精品无码av片| 亚洲A∨精品一区二区三区| 亚洲永久精品ww47| 久久亚洲AV成人出白浆无码国产| 亚洲日本香蕉视频| 亚洲精品国产综合久久久久紧|