美文网首页
HBase作为JanusGraph图数据库存储

HBase作为JanusGraph图数据库存储

作者: 娃娃学软件 | 来源:发表于2018-11-17 09:02 被阅读0次

    目的

    JanusGraph作为一个分布式的图数据库,支持很多的数据库作为它的图数据存储介质。这里将介绍运用HBase作为JanusGraph的存储数据库。

    JanusGraph & HBase

    优点

    • 能够很好的和 Apache Hadoop 生态圈进行融合。
    • 强一致性有很好的支持。
    • 通过机器的扩容能够使得存储得到线性的扩展。
    • 严格的读写事务控制。
    • 运行状态参数可以通过JMX导出。
    • 都具备Apache 2 许可证。

    配置

    在配置文件conf/janusgraph-hbase-solr.properties中添加HBase的访问,配置参数如下:

    storage.backend=hbase //使用HBase作为存储后端
    storage.hostname=zookeeper-host1,zookeeper-host2,zookeeper-host3 //HBase的Zookeeper
    storage.hbase.table=janusgraph//HBase存储JanusGraph元数据的表名
    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配置参数如下:

    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的元数据表名
    

    工作原理

    JanusGraph源自Apache TinkerPop,支持Gremlin图遍历语言,例如下面的这个Gremlin语言:

    /**
     *查找Alice朋友的朋友名称列表
     */
    g.V().has("name", "Alice").out("knows").out("knows").values("name")
    
    • g.V().has("name", "Alice")是索引查询,从Solr中查询。
    • .out("knows").out("knows").values("name")是遍历查询,从HBase中查询。
      查询流程如下图:
      查询流程

    相关文章

      网友评论

          本文标题:HBase作为JanusGraph图数据库存储

          本文链接:https://www.haomeiwen.com/subject/pahbfqtx.html