在安裝hbase的時候,一開始由于配置原因導緻并未成功運作
經常會爆 (ERROR: KeeperErrorCode = NoNode for /hbase/master) 的錯誤,上網檢視後發現是hbase-site.xml 與hbase-env.sh 的配置問題以下先給出hbase的相關配置
hbase-site.xml
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://node01:8020/hbase</value> # node01 節點端口,在hdfs-site.xml檢視
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>node01,node02,node03</value> # 叢集的節點
</property>
<property>
<name>hbase.unsafe.stream.capability.enforce</name>
<value>false</value> #重點,也是解決問題的關鍵,false
</property>
<property>
<name>hbase.master.info.port</name>
<value>60010</value># 設定node01web方式登入的端口号
</property>
</configuration>
hbase-env.sh
export JAVA_HOME=/usr/local/javak1.8.0_162 #jdk路徑 export HBASE_MANAGES_ZK=false # 使得hbase不要使用自身的資料庫
regionservers
node01 node02 node03
當然也不要忘了配置etc/profile下的總體路徑
以上總體的hbase配置就好了,然後我們将hbase發送到node02 node03
scp -r /usr/local/hbase node02:$PWD
scp -r /usr/local/hbase node03:$PWD
scp /etc/profile node02:/etc
scp /etc/profile node03:/etc
重新開機虛拟機後開始進行hbase的應用 在啟動hbase之前,需要先啟動zookeeper與Hadoop.
切換到三台節點的zookeeper目錄下,執行zkServer.sh指令
然後再執行Hadoop(我是配置過的,直接start-all.sh就可以)也可以先start-dfs.sh 再start-yarn.sh
最後輸入jps檢視指令
沒有問題,開始執行start-hbase.sh
出現了HMaster與HRegionServer,代表着啟動成功。然後輸入hbase shell到hbase資料庫裡面
這時候我們可以看見沒有報錯KeeperErrorCode = NoNode for /hbase/master 而是報了一直存在的For usage try 'help' 'status'
這是為什麼呢?按道理來說我們該配置的所有都配置好了啊,還會報這種錯?在下正是被這個錯折磨了很久,搜遍csdn也找不到,後面上百度終于找到
原來是因為以前安裝的HBASE有殘留,隻需要在Zookeeper Client端删除即可(因為之前我認為hbase版本的問題,将其解除安裝再安.....)
執行如下指令進入再zookeeper的client終端
${ZOOKEEPER_HOME}/bin/zkCli.sh
發現果然存在殘留!将其删除後重新開機虛拟機,啟動zookeeper與Hadoop,在啟動hbase
問題解決 !!!!!!!!!!!!
現在看來這隻是一個很小的問題,但是卻困擾了我很久,看到csdn上面沒有類似問題(沒有人跟我一樣蠢),但我還是選擇寫了自己的第一篇文章,記錄一下,第一次寫。
寫的不好,僅供參考