JanusGraph问题笔记:NoNodeException(hbase)

3,504 阅读1分钟

场景

  • 使用hbase后端存储,在gremlin命令行打开图的操作。
  • HBase服务正常,能使用hbase shell进行操作

问题

E05:使用gremlin open图时报错org.apache.zookeeper.KeeperException$NoNodeException

详细报错日志:

java.util.concurrent.ExecutionException: org.apache.hadoop.hbase.shaded.org.apache.zookeeper.KeeperException$NoNodeException: KeeperErrorCode = NoNode for /hbase/hbaseid
	at java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:357)
	at java.util.concurrent.CompletableFuture.get(CompletableFuture.java:1895)
	……
Caused by: org.apache.hadoop.hbase.shaded.org.apache.zookeeper.KeeperException$NoNodeException: KeeperErrorCode = NoNode for /hbase/hbaseid
	at org.apache.hadoop.hbase.shaded.org.apache.zookeeper.KeeperException.create(KeeperException.java:111)

关键信息有:

NodeException: KeeperErrorCode = NoNode for /hbase/hbaseid

解决方案

既然zookeeper和hbase服务均正常,检查Hbase的配置:

<property>
     <name>zookeeper.znode.parent</name>
     <value>/hbase-xxx</value>
 </property>

修改hbase-site.xml

集群安装用户请通过管理页面修改HBase这个配置!

发现这里并非是报错日志指向的/hbase/hbaseid,而是/hbase-xxx目录。 这里把zookeeper.znode.parent改为/hbase,重启hbase之后这个报错就没有了

在页面看到的zookeeper.znode.parent值是/hbase-unsecure,改为/hbase。

或者更正规的解法是

@小样 在官网看到一个参数,storage.hbase.ext.zookeeper.znode.parent ,在配置文件把这个参数的值设置为与zookeeper.znode.parent的值相同也可以解决!

2019-11-11更新

原因

还不知道,可能hbase升级后默认配置有变动,之前是没有异常的。

源自个人博客,欢迎访问:kelvin-qzy.top/