JanusGraph圖形數據庫搭建

? ? ?本文創作只是為了工作之余的總結,非專業工程人士角度。另外本文沒有從0到1步步教你如何搭建,只求讓你對janusGraph 圖形數據庫搭建有個清晰的認識。當然本人并未觀看JanusGraph 框架源碼,其中理解完全源于對JanusGraph官方文檔的解讀,如有不足之處,請多多指教。

一、搭建要求前提:集群中已經搭建完成hadoop、hbase /zookeeper (java1.8以上)

其中DataNode 、NameNode、SecondaryNameNode是hadoop 啟動進程

HRegionServer HMaster 是 hbase 啟動進程

QuorumPeerMain 是zookeeper 啟動進程

二.JanusGraph 圖形數據庫搭建的幾種形式

JanusGraph圖形數據庫可以與集群(hbase)搭建在一起,也可以另外的機器上去搭建。搭建一起的可能的好處就是減少數據的傳輸。

1)單機搭建。

對每張圖從左往右進行標號1客戶端 、2 janusGrph(配置)、3單機集群(后端)

這張圖可以理解這樣理解:客戶端和janusGrph 搭建在同一臺機器上 單機集群可以部署在遠端也可以理解部署在客戶端和janusGraph 同一臺機器上,只不過配置不同罷了。

搭建過程:

在本地機器搭建完后端后,從官網上下載JanusGraph janusgraph-0.3.0-hadoop2.zip?

完成以下配置:

在文件下../conf/ 修改 與搭建后端相同的properties

例如:

在我的本地搭建只搭建了hbase后端存儲,沒有索引ES。那么在properties配置中就刪除掉關于ES等配置,只保留storage 相關的配置。如果只是本地搭建的單機形式只要修改一下storage.backend=hbase/storage.hostname=127.0.0.1 即可 如果集群不在本地搭建的只需要修改一下后端存儲storage.hostname 以及storage.port即可。注意:如果你想設置一下插入后端數據的表名可用:graph.graphname默認的值為JanusGraph。graph.graphname=mazze這樣的話你得插入hbase表名就是mazze。其他的配置說明請看官網上的配置

在此單機搭建完成了。

測試:

在目錄bin/下執行gremlin.sh 至于為什么要通過Gremlin建議可以看一下官網文檔,在此不多說。

進入交互式界面后,我們怎么跟本地的后端或者遠處的服務器通信呢?

很簡單:

在交互式界面執行:gremlin> graph = JanusGraphFactory.open('conf/xx.properties')

這樣我們就可以得到了一個圖了,你可以通過內置的函數進行加載數據到圖中如:

gremlin> GraphOfTheGodsFactory.load(graph)

(因為我的測試hbase 沒有安裝ES,所以對數據的加載只能按以下方式:

gremlin> GraphOfTheGodsFactory.loadWithoutMixedIndex(graph, true)

完成數據的載入后,你就可以對圖進行操作了,操作前需要執行以下函數:

gremlin> g = graph.traversal()

至此本地的JanusGraph的搭建完成了,你可以盡情的測試。

2 ).JanusGraph 分布式搭建

對每張圖從左往右進行標號1客戶端 、2 janusGraph集群、3存儲集群(后端)

如果我們有對圖的數據庫分布式的需求可以如上形式的搭建,其跟單機的單建基本相同,不同之處在于我們需要配置JanusGraph包到多臺機器上。至此不再贅述。

3).JanusGraph分布式 服務器形式搭建(+gremlinServer)

對每張圖從左往右進行標號 1客戶端 、2 janusGraph集群+gremlinServer(janusGraph server)、3存儲集群(后端)

如果你確實不知道他跟JanusGraph 分布式搭建下稱之為JanusGraph+? ? 的形式有什么不同,你可以暫時理解為JanusGraph分布式 服務器形式搭建(+gremlinServer) 下稱之為 JanusGraph+server,在其中在每臺機器上多開了一直運行的服務進程。而這些服務本質是gremlinServer 服務。為什么是GremlinServer這就需要你去瞅瞅了。那么維持這個服務的目的在于什么呢?可以方便你隨時的去取已經被你配置在gremlin-server或操作過的圖實例,不需要你每次進入客戶端去anusGraphFactory.open('conf/xx.properties')加載你的配置、創建圖實例

他始終維持加載好的圖實例,方便你隨時隨地的去操作,是不是很有用。

配置如下:

1.配置gremlin-server

1). 跟單機配置properties 文件一樣,你需要配置一個properties 文件。該文件就是你的后端(hbase等)配置文件

2).配置yaml 文件,該文件是你的服務端跟你的客戶端相關通信的配置。例如socket還有http.

host 表示你需要監聽的ip以及端口 0.0.0.0 表示所有客戶端的請求IP

如果你想在該服務端始終保持兩個圖實例,那么如上圖的wzbgraph和wcfgraph。這里說明一下兩者的不同,以及用處。wzbgraph的文件properties配置與wcfgraph文件propertie配置不同之處在于有沒有設置graph.graphname這一項,如果設置了那么你的圖的實例以及存入hbase的表名都會是設置的值,如果沒有設置那么你的實例就是你的wzbgraph 存入hbase 里面的表明就是默認的Janusgraph. 這些是需要注意,也是一些基本的東西。

2.啟動gremlin-server

對你剛剛配置的yaml 文件進行啟動 例如:

bin/gremlin-server.sh ./conf/gremlin-server/socket-gremlin-server.yaml

3.配置本地客戶端的訪問的文件

1).在你的本地配置遠程訪問文件。

其中hosts是你的gremlin-server 部署的機器ip port允許訪問的端口

4.本地客戶端訪問gremlin-server

本地進入bin目錄:

執行gremlin.sh

然后gremlin>remote connect tinkerpop.server conf/remote.yaml

至此你就可以使用在服務器中已經配置好的圖實例了。例如上面的wzbgraph 圖實例 wcfgraph圖實例根據你的graph.graphname。

當然如果你需要自己建一個新的圖實例,并加載到gremlin服務

gremlin>:remote console

然后自己加載你需要的配置以及實例吧!!

gremlin> graph = JanusGraphFactory.open('conf/xx.properties')

JanusGraph 圖形數據庫的講解完畢。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。