報錯:
master.HMaster: Failed to become active master
環境:
OS: CENTOS6.5
Hadoop: 2.7.1
Hbase: 1.0.4
ZooKeeper: 3.4.6
動作:
Hbase 升級版本1.0.4 --> 1.2.4
下午接到老朋友電話,說Hbase Master開不起來,因爲是生產環境,所以異常着急。事發在凌晨4點多,有一個服務器的硬盤壞了,導致該服務器的Hadoop服務異常了,Hbase也受到了影響,應該是程式正在寫hbase的進程受到影響,隨之Hbase集羣掛掉了。管理員接到產線電話後,***連接到服務器重啓服務,hadoop開啓是正常的,可是Hbase的Master一直無法重啓。並報錯,如下:
參考了很多很多的文章,一直無法解決此問題,一般Hbase的問題解決就是2個思路,要麼內存分配有問題,要麼就是參數異常,這次顯然並不簡單,我們有懷疑過是不是Zookeeper異常,導致一直無法獲得ClusterID,可是如果Zookeeper異常的話hadoop不可能開得起來,所以排除Zookeeper異常造成。
最後看到google上有提到,是bug的影響。最終,定出2種方案,要麼升級Hbase版本,要麼數據清除重構。相對之下,更新Hbase版本比較快和安全,因爲Hbase的數據是存儲在Hadoop裏的,Hadoop的數據沒有問題,所以升級Hbase不會對Hadoop的數據產生影響。
由於接近吃飯時間了,我就去外面打個飯,還沒有打包完,就接到好消息,說數據庫集羣開起來了,而且數據沒有丟,一切正常。
整個解決過程接近4個小時,花了很多時間去研究問題,也嘗試了很多的方法,最終要升級數據庫集羣版本,這還是第一次。Bug這種東西,不會經常遇到,可是遇到的時候就是最鬱悶的時候,要麼繞過,要麼迎面解決。這次我們是迎面解決了問題。Yeah.