當前位置:
首頁 > 最新 > 聊聊兩周兩次的非人為HBase的事故

聊聊兩周兩次的非人為HBase的事故

2018-05-21事故:


1.現象

由於VM虛擬機的3台的RS節點異常退出,然後重啟HBase, Master HA服務都無法啟動。

2.Master日誌

3.原理分析3.1 老版本:Master分配Regions

新創建的所有的Regions,通過AssignmentManager將這些Region按照輪詢(Round-Robin)的方式分配到每一個RegionServer中,具體的分配計劃是由LoadBalancer來提供的。

AssignmentManager負責所有Regions的分配/遷移操作,Master中有一個定時運行的線程,來檢查集群中的Regions在各個RegionServer之間的負載是否是均衡的,如果不均衡,則通過LoadBalancer生成相應的Region遷移計劃,HBase中支持多種負載均衡演算法,有最簡單的僅考慮各RegionServer上的Regions數目的負載均衡演算法,有基於遷移代價的負載均衡演算法,也有數據本地化率優先的負載均衡演算法,因為這一部分已經提供了插件化機制,用戶也可以自定義負載均衡演算法。

摘抄:

http://hbasefly.com/2016/09/08/hbase-rit/

3.2 我們生產上HBase1.2.0,查看源代碼

https://github.com/apache/hbase/blob/rel/1.2.0/hbase-server/src/main/java/org/apache/hadoop/hbase/master/RegionStates.java

兩個方法:

waitOnRegionToClearRegionsInTransition: 等待region清除RIT狀態

waitForUpdate方法: 分配管理器等待更新狀態映射

4.嘗試解決

重啟Master, 讓它刷, 發現沒什麼用;

然後stop兩台master,新增兩台新的master,啟動,第一台,實時查看日誌讓它刷,然後等刷完,啟動第二台;然後觀察5分鐘,正常。

然後觀察使用半小時,刪除舊的兩台master。

第一次的事故就這樣解決過去了,其實這時心裡有點清楚是怎麼回事了。

5.思考HBase2.0新版本

A new Region assignment manager ("AMv2") ,HBASE-14350 , HBASE-14614。

AssignmentManager V2基於Procedure V2實現,能夠更快速的分配Region,維護的region狀態機存儲不再依賴於ZooKeeper。

可以搭建一個hbase2.0 集群,查看ZK節點列表,已經找不到類似region-in-transistion節點了。

2018-05-28事故:


由於機房的某台刀片機 license 到期沒有,自動續上,刀片機直接關機了,然後RS節點全面異常中斷,微信和郵件警告滿天飛了,哎。

2.Master日誌48機器:

另外47機器的日誌就處於暫停輸出狀態,為backup;

查看48機器的日誌,全部列印INFO級別的,應該是獲取active,然後去恢復租約。

3.RS節點日誌:

自動移動WALS,在恢復。

接下來就是 tail -F 實時查看Master和RS節點的日誌,等待是最讓人著急的,

然後發現都是輸出INFO級別的日誌,其實內心很平靜的,於是泡壺茶,靜靜的等待著,靜靜的等待著。

4.等待20分鐘,使用DBeaver工具測試能夠連接HBase集群了,說明OK了。但是,CDH web界面顯示HBase master狀態問題。

5. 再次分析

47 48 master也沒顯示active backup狀態,且健康檢查是失敗的。

這時HBase還是感嘆號??,令人很不爽,總感覺HBase有問題。但是dbeaver工具連接又是OK的,表明HBase master是active和backup的。

發現其實提示了一句話(上圖中):

6.解決方案

重啟CDH的service monitor服務,然後發現web 界面的HBase master狀態有active backup了。

總結:

1.看見某位大牛的話: "恐懼來源於未知",說真的第二次事故,我一點也不恐懼,因為有第一次的經驗積累。

2.關於HBase的RS由於各種因素宕機的,導致Master無法Active的,在恢復過程中,千萬不要慌,仔細分析Master、RS日誌,定點分析。

3.底層的物理環境是非常重要的。

以上是本人的兩次事故的記錄分析,如有不當,多謝指出和交流。

如需轉載,請在開篇顯著位置註明文章出處(轉自:HBase技術社區hbasegroup

大家工作學習遇到HBase技術問題,把問題發布到HBase技術社區論壇http://hbase.group,歡迎大家論壇上面提問留言討論。想了解更多HBase技術關注HBase技術社區公眾號(微信號:hbasegroup),非常歡迎大家積極投稿。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 HBase技術社區 的精彩文章:

TAG:HBase技術社區 |