HBase 運維 | 記錄一次生產上暴力解決HBase RIT問題

1.現象:

昨晚集羣夯住,內存不夠,導致HBase RegionServer掛了!
緊跟着CDH HBase Master(active)節點是紅色的,顯示信息:HBase Regions In Transition Over Threshold
這時我知道又遇見HBase RIT了。

2.常見解決方法:

2.1 重啓HBase,嘗試了2次後,發現HBase Master(active)節點是依舊紅色的

雖然我們可以連接HBase,但是查詢速度(dbeaver工具+Phoenix)上是非常慢的,
還拋錯一個錯誤: Cache of region boundaries are out of date.

2.2 在master節點:使用hbase進程所在的用戶

su - hbase
hbase hbck -fixAssignments 
用於修復region assignments錯誤,觀察發現越來越多的RIT的Regions,及時終止命令
也嘗試了一下 hbase hbck、hbase hbck -repair,日誌刷了很久也沒解決。

2.3 查看master節點日誌,發現如下日誌
2018-08-21 09:50:47,924 INFO org.apache.hadoop.hbase.master.SplitLogManager: total tasks = 1 unassigned = 0 tasks={/hbase/splitWAL/WALs%2Fhadoop49%2C60020%2C1534734073978-splitting%2Fhadoop49%252C60020%252C1534734073978.null0.1534762936638=last_update = 1534816154977 last_version = 22 cur_worker_name = hadoop47,60020,1534815723497 status = in_progress incarnation = 2 resubmits = 2 batch = installed = 1 done = 0 error = 0}

由於日誌刷的很快,加上是info級別,剛開始真心沒注意!
後來通過分析HBase master web界面,發現:

  • a.RIT的regions都是在hadoop49機器

  • b.master的log日誌也是顯示hadoop49機器的splitting log,

    一直在in_progress狀態
    (觀察差不多10分鐘,一直再刷info級別且此狀態)

3.暴力解決:

3.1 直接使用hdfs命令先找到日誌,再rm刪除(移除到回收站)
hadoop36:hdfs:/var/lib/hadoop-hdfs:>hdfs dfs -ls hdfs://nameservice1/hbase/WALs/*splitting
Found 1 items
-rw-r--r--   3 hbase hbase   21132987 2018-08-20 19:02 hdfs://nameservice1/hbase/WALs/hadoop49,60020,1534734073978-splitting/hadoop49%2C60020%2C1534734073978.null0.1534762936638
hadoop36:hdfs:/var/lib/hadoop-hdfs:>
hadoop36:hdfs:/var/lib/hadoop-hdfs:>
hadoop36:hdfs:/var/lib/hadoop-hdfs:>hdfs dfs -rm hdfs://nameservice1/hbase/WALs/hadoop49,60020,1534734073978-splitting/hadoop49%2C60020%2C1534734073978.null0.1534762936638
18/08/21 12:46:15 INFO fs.TrashPolicyDefault: Moved: 'hdfs://nameservice1/hbase/WALs/hadoop49,60020,1534734073978-splitting/hadoop49%2C60020%2C1534734073978.null0.1534762936638' to trash at: hdfs://nameservice1/user/hdfs/.Trash/Current/hbase/WALs/hadoop49,60020,1534734073978-splitting/hadoop49%2C60020%2C1534734073978.null0.1534762936638
hadoop36:hdfs:/var/lib/hadoop-hdfs:>
3.2 重啓HBase,等待一會,一切正常,保證HBase對外提供服務。
3.3 因爲我們刪除的是HLOG文件,必然會丟失數據,故使用MCP實時中間件,web界面定製數據重刷job(昨晚19:00~21:00故障範圍時間),恢復數據。

本文分享自微信公衆號 - HBase工作筆記(HBase-Notes)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章