目的
JanusGraph作為一個分布式的圖數(shù)據(jù)庫牛哺,支持很多的數(shù)據(jù)庫作為它的圖數(shù)據(jù)存儲介質(zhì)。這里將介紹運用HBase作為JanusGraph的存儲數(shù)據(jù)庫篙耗。
JanusGraph & HBase
優(yōu)點
- 能夠很好的和 Apache Hadoop 生態(tài)圈進(jìn)行融合迫筑。
- 對強一致性有很好的支持。
- 通過機器的擴(kuò)容能夠使得存儲得到線性的擴(kuò)展宗弯。
- 嚴(yán)格的讀寫事務(wù)控制脯燃。
- 運行狀態(tài)參數(shù)可以通過JMX導(dǎo)出。
- 都具備Apache 2 許可證蒙保。
配置
在配置文件conf/janusgraph-hbase-solr.properties中添加HBase的訪問辕棚,配置參數(shù)如下:
storage.backend=hbase //使用HBase作為存儲后端
storage.hostname=zookeeper-host1,zookeeper-host2,zookeeper-host3 //HBase的Zookeeper
storage.hbase.table=janusgraph//HBase存儲JanusGraph元數(shù)據(jù)的表名
storage.hbase.ext.zookeeper.znode.parent=/hbase //HBase使用的Znode
storage.hbase.ext.hbase.zookeeper.property.clientPort=2181 //端口
HBase的查詢是基于Rowkey,所以在條件查詢這塊是弱項邓厕,一旦Rowkey確定如果有新的查詢就比較難逝嚎。所以為了解決這個問題,JanusGraph引入了索引后端邑狸,下面我們介紹下如何配置Solr作為JanusGraph的索引后端懈糯。配置文件conf/janusgraph-hbase-solr.properties配置參數(shù)如下:
index.search.backend=solr //使用solr作為索引后端
index.search.solr.mode=cloud //solr使用集群模式
index.search.solr.zookeeper-url=zookeeper-host1:2181/solr,zookeeper-
host2:2181/solr,zookeeper-host3:2181/solr //HBase使用的Zookeeper
index.search.solr.configset=janusgraph //Solr使用HBase的元數(shù)據(jù)表名
工作原理
JanusGraph源自Apache TinkerPop,支持Gremlin圖遍歷語言单雾,例如下面的這個Gremlin語言:
/**
*查找Alice朋友的朋友名稱列表
*/
g.V().has("name", "Alice").out("knows").out("knows").values("name")