本地环境设置HBase为JanusGraph存储后端时HBase连接失败

HBase connection failure when setting HBase as the storage backend of JanusGraph in local environment

我首先在本地设置了一个独立的HBase,我可以在那里创建表并进行查询。 然后我使用 docker 图像在本地设置 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-site.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();

提前感谢您的帮助!!

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

bin/janusgraph.sh start

解决了那个连接问题。