社内se × プログラマ × ビッグデータ

プログラミングなどITに興味があります。

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

色んなモジュールが連携していることもあって、設定ミスなど、はまりポイントが多いです。