背景
Gremlin是Apache TinkerPop框架下實現的圖遍歷語言,支持OLTP與OLAP,是目前圖數據庫領域主流的查詢語言,可類比SQL語言之於關系型數據庫。
HugeGraph是國內的一款開源圖數據庫,完全支持Gremlin語言。本文將講述如何基於HugeGraph搭建一個執行Gremlin的圖形化環境。
HugeGraph的github倉庫下有很多子項目,我們這里只需要使用其中的兩個:hugegraph
和hugegraph-studio
。
部署HugeGraphServer
准備安裝包
方式一:源碼編譯打包
進入hugegraph項目,克隆代碼庫

進入終端
$ git clone git@github.com:hugegraph/hugegraph.git
完成后會在當前目錄下多出來一個hugegraph
的子目錄,不過這個目錄里面的文件是源代碼,我們需要編譯打包才能生成可以運行包。
進入hugegraph
目錄,執行命令:
$ git checkout release-0.7 $ mvn package -DskipTests
注意:一定要先切換分支,hugegraph主分支上版本已經升級到
0.8.0
了,但是studio似乎還沒有升級,為避免踩坑我們還是使用已發布版。
經過一長串的控制台輸出后,最后如果能看到BUILD SUCCESS
表示打包成功。

這時會在當前目錄下多出來一個子目錄
hugegraph-0.7.4
和一個壓縮包
hugegraph-0.7.4.tar.gz
,這就是我們即將要使用可以運行的包。
本人有輕微強迫症,不喜歡源代碼和二進制包放在一起,容易混淆,所以把hugegraph-0.7.4
拷到上一層目錄,然后刪除源代碼目錄,這樣上層目錄又回歸清爽了。
$ mv hugegraph-0.7.4 ../hugegraph-0.7.4 $ cd .. $ rm -rf hugegraph
到這兒安裝包就准備好了。不過,這樣操作是需要你本地裝了jdk
、git
和maven
命令行工具的,如果你沒有安裝也沒關系,我們還可以直接下載hugegraph
官方的release
包。
方法二:直接下載release
包
點擊github
代碼的上面的導航releases

可以看到hugegraph目前有兩個release,點擊hugegraph-0.7.4.tar.gz
就開始下載了。

下載完之后解壓即可
$ tar -zxvf hugegraph-0.7.4.tar.gz
解壓完之后能看到一個hugegraph-0.7.4
目錄,這個目錄和用源碼包打包生成的是一樣的。
下面講解如何配置參數。
配置參數
雖然標題叫配置參數,但其實hugegraph
的默認配置就已經能在大部分環境下直接使用了,不過還是說明一下幾個重要的配置項。
進入hugegraph-0.7.4
目錄,修改HugeGraphServer
提供服務的url (host + port)
$ vim conf/rest-server.properties # bind url restserver.url=http://127.0.0.1:8080 # gremlin url to connect gremlinserver.url=http://127.0.0.1:8182 # graphs list with pair NAME:CONF_PATH graphs=[hugegraph:conf/hugegraph.properties] # authentication #auth.require_authentication= #auth.admin_token= #auth.user_tokens=[]
restserver.url
就是HugeGraphServer
對外提供RESTful API
服務的地址,host
為127.0.0.1
時只能在本機訪問的,按需要修改其中的host
和port
部分即可。我這里由於studio
也是准備在本地啟動,8080
端口也沒有其他服務占用,所以不修改它。
graphs
是可供連接的圖名與配置項的鍵值對列表,hugegraph:conf/hugegraph.properties
表示通過HugeGraphServer
可以訪問到一個名為hugegraph
的圖實例,該圖的配置文件路徑為conf/hugegraph.properties
。我們可以不用去管圖的配置文件,按需要修改圖的名字即可。我這里仍然沒有修改它。
初始化后端
hugegraph
啟動服務之前是需要手動初始化后端的,不過大家也不要看到“手動”兩個字就害怕,其實就是調一個命令的事。
$ bin/init-store.sh Initing HugeGraph Store... 2018-09-07 16:02:12 1082 [main] [INFO ] com.baidu.hugegraph.cmd.InitStore [] - Init graph with config file: conf/hugegraph.properties 2018-09-07 16:02:12 1201 [main] [INFO ] com.baidu.hugegraph.HugeGraph [] - Opening backend store 'rocksdb' for graph 'hugegraph' 2018-09-07 16:02:12 1258 [main] [INFO ] com.baidu.hugegraph.backend.store.rocksdb.RocksDBStore [] - Opening RocksDB with data path: rocksdb-data/schema 2018-09-07 16:02:12 1417 [main] [INFO ] com.baidu.hugegraph.backend.store.rocksdb.RocksDBStore [] - Failed to open RocksDB 'rocksdb-data/schema' with database 'hugegraph', try to init CF later 2018-09-07 16:02:12 1445 [main] [INFO ] com.baidu.hugegraph.backend.store.rocksdb.RocksDBStore [] - Opening RocksDB with data path: rocksdb-data/system 2018-09-07 16:02:12 1450 [main] [INFO ] com.baidu.hugegraph.backend.store.rocksdb.RocksDBStore [] - Failed to open RocksDB 'rocksdb-data/system' with database 'hugegraph', try to init CF later 2018-09-07 16:02:12 1456 [main] [INFO ] com.baidu.hugegraph.backend.store.rocksdb.RocksDBStore [] - Opening RocksDB with data path: rocksdb-data/graph 2018-09-07 16:02:12 1461 [main] [INFO ] com.baidu.hugegraph.backend.store.rocksdb.RocksDBStore [] - Failed to open RocksDB 'rocksdb-data/graph' with database 'hugegraph', try to init CF later 2018-09-07 16: