1.問題:
- 關於AWS,S3之類的錯誤.
- Hmaster沒有 或者是 Hmaster啓動之後幾秒關閉.
- 解決問題’3’後HRegionServer 啓動之後幾秒關閉.
2.方法:
- 看日誌,但是要分清看的是 Hmaster日誌,和 HRegionServer日誌,以及 *.log日誌,*.out日誌.
- 善用Google. 所謂善用, 搜索詞的選擇,用英文還是中文.
- 最後發現是缺jar包。
3.具體解決
1. 關於AWS,S3之類的錯誤.
解決方法就是:
思路: 將Hadoop下的jar包複製到hbase下,還有那個aws的jar包。
// 拷貝 Hadoop下的包到hbase
find /home/hadoop/software/hadoop/share/hadoop -name "hadoop*jar" | xargs -i cp {} /home/hadoop/software/hbase/lib/
// 拷貝aws*.jar
find /home/hadoop/software/hadoop/share/hadoop -name "aws*jar" | xargs -i cp {} /home/hadoop/software/hbase/lib/
再次使用“start-hbase.sh”啓動,可以看到
HMaster
2. Hmaster進程沒有或者是幾秒後消失
解決掉問題1中的錯誤之後,沒有了關於AWS的報錯,執行命令”start-hbase.sh”之後,”jps”一看,少了Hmaster。
看日誌是解決問題的先決條件.
思路: hbase-site.xml配置文件
具體解決方法:
<property>
<name>hbase.rootdir</name>
<value>hdfs://new1data/hbase</value>
</property>
正確的做法是**要寫hdfs的集羣名稱**,自己繼承過來的部署文檔沒有出錯或是沒有更新.
注意,這裏是要看hbase-hadoop-master-$HOST.log 日誌,不是其他日誌,這樣才能正確定位到出錯位置.
修改配置文件中關於ZooKeeper的配置.
增加以下一段設置:
<!--運行hbase的用戶有寫入文件權限的目錄作爲zookeeper數據目錄 -->
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/opt/software/zookeeper/data</value>
</property>
3. 解決問題’2’後HRegionServer 啓動之後幾秒關閉.
執行zkClient.sh進入zk客戶端,
ls /查看目錄結構,應該有一個hbase目錄,rmr /hbase,刪除這個目錄,
重新啓動habse,應該就沒問題了,這步很關鍵,很容易忽略,讓zk重新註冊hbase.
這種推倒重來,釜底抽薪的辦法有時候很管用.
更新文檔
記錄問題解決思路,方法,癥結