代码之家  ›  专栏  ›  技术社区  ›  Ming

在本地环境中将HBase设置为JanusGraph的存储后端时,HBase连接失败

  •  0
  • Ming  · 技术社区  · 6 年前

    我首先在本地设置了一个独立的HBase,我可以在那里创建表并进行查询。 然后我使用docker image在本地设置JanusGraph。我遵循了这两方面的官方文件。我想我没有错过任何东西。它们各自完美地工作。

    然后当我尝试从Gremlin控制台连接HBase时。连接被拒绝,它将继续重试连接。错误消息如下:

      2 java.net.ConnectException: Connection refused
      3      at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
      4      at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:714)
      5      at org.apache.hadoop.hbase.shaded.org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:361)
      6      at org.apache.hadoop.hbase.shaded.org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1141)
      7 21:31:46 WARN  org.apache.hadoop.hbase.zookeeper.ReadOnlyZKClient  - 0x3b97907c to localhost:2181 failed for get of /hbase/hbaseid, code = CONNECTIONLOSS, retries = 3
    

    我的HBase hbase网站。xml 文件采用官方文件中的以下格式:

    <configuration>
      <property>
        <name>hbase.rootdir</name>
        <value>file:///home/testuser/hbase</value>
      </property>
      <property>
        <name>hbase.zookeeper.property.dataDir</name>
        <value>/home/testuser/zookeeper</value>
      </property>
      <property>
        <name>hbase.unsafe.stream.capability.enforce</name>
        <value>false</value>
        <description/>
    </property>
    </configuration>
    

    我用于从Gremlin连接HBase的命令是:

    JanusGraph graph = JanusGraphFactory.build().set("storage.backend", "hbase").open();
    

    提前谢谢你的帮助!!

    0 回复  |  直到 6 年前
        1
  •  0
  •   Ming    6 年前

    我找到了解决办法。我在docker中使用的janusGraph可能是一个轻量级版本。可能会遗漏一些配置细节。通过安装janusgraph-full-0.5.1,遵循官方的janusgraph服务器说明并使用

    bin/janusgraph.sh start
    

    解决了连接问题。