ERROR: The node /hbase-unsecure is not in ZooKeeper.
エラー内容
Docker で HBase の Container を作っているのですが、hbase shell を起動した時に発生したエラー。
Docker とは何の関係もないエラーです。
ERROR: The node /hbase-unsecure is not in ZooKeeper. It should have been written by the master. Check the value configured in 'zookeeper.znode.parent'. There could be a mismatch with the one configured in the master.
HBase のMasterサーバー(HMaster)を起動すると、zookeeper 内に /hbase-unsecure が生成されるはずなのですが、それが作られていないよというエラー。
実際に、zkCli.sh で除いてみても、このノードは生成されていませんでした。
調査
HMaster が起動してないのかも?ということで、ログを見てみると以下のエラーが出て起動できていませんでした。
HMaster: Failed to become active master SIMPLE authentication is not enabled
このエラーは見た記憶がなかったのですが、以下に回答がありました。
https://stackoverflow.com/questions/35975094/master-hmaster-failed-to-become-active-master-simple-authentication-is-not-enab?rq=1
core-site.xml と hbase-site.xml で指定しているポート番号が一致していないだろうとのこと。
確認してみると、一致してませんでしたので、9000 で揃えました。
(HDP のドキュメント見ながら設定したはずなのに。。。)
core-site.xml
<property> <name>fs.defaultFS</name> <value>hdfs://hdp-resource.docker:9000</value> </property>
hbase-site.xml
<property> <name>hbase.rootdir</name> <value>hdfs://hdp-resource.docker:9000/apps/hbase/data</value> </property>
確認
改めて、HMaster を起動、RegionServer も起動してます。
/usr/hdp/current/hbase-master/bin/hbase-daemon.sh start master /usr/hdp/current/hbase-regionserver/bin/hbase-daemon.sh start regionserver
今度は hbase shell も問題なく動作しました。
hbase(main):001:0> list TABLE 0 row(s) in 0.5440 seconds => [] hbase(main):002:0> create_namespace 'ns' 0 row(s) in 0.0840 seconds hbase(main):003:0> list_namespace NAMESPACE default hbase ns 3 row(s) in 0.1300 seconds
色んなモジュールが連携していることもあって、設定ミスなど、はまりポイントが多いです。