1. 程式人生 > >執行hbase shell時報錯: hbase(main):001:0> list ERROR: Can't get master address from ZooKeeper; znode da

執行hbase shell時報錯: hbase(main):001:0> list ERROR: Can't get master address from ZooKeeper; znode da

執行hbase shell時報錯:

hbase(main):001:0> list

ERROR: Can't get master address from ZooKeeper; znode data == null

Here is some help for this command:
List all tables in hbase. Optional regular expression parameter could
be used to filter the output. Examples:


  hbase> list
  hbase> list 'abc.*'
  hbase> list 'ns:abc.*'
  hbase> list 'ns:.*'

解決方法:


(1)原因:執行hbase(zookeeper)的使用者無法寫入zookeeper檔案,導致znode data為空。

解決:在hbase-site.xml指定一個執行hbase的使用者有寫入檔案許可權的目錄作為zookeeper資料目錄,如
  <property>
    <name>hbase.zookeeper.property.dataDir</name>
    <value>/home/user88/zk_data</value>
  </property>

(2)hbase-site.xml檔案中的

<property>  
<name>hbase.rootdir</name>   
<value>hdfs://hadoop1:49002/hbase</value>  
</property>

與core-site.xml中fs.defaultFS中的路徑不相同

<property>
      <name>fs.defaultFS</name>
      <value>hdfs://hadoop1:9000</value>
  </property>