国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

hbase無法啟動問題處理

IT那活兒 / 1202人閱讀
hbase無法啟動問題處理

點擊上方“IT那活兒”,關注后了解更多內容,不管IT什么活兒,干就完了!!!





故障現象



某日接到客戶反映hbase的測試環境無法啟動故障。最終定位原因為hbase regions負載過大崩潰,測試人員在恢復失敗后對zk實例刪除了一個,導致zk實例數據異常最終無法正常啟動完成,進一步導致hbase無法恢復啟動。
恢復啟動后發現hbase的regions數量過多,單節點超過5000 regions,后續對集群進行優化,清理過期歷史數據,釋放regions至正常水平,最終單節點承載數約1000regions左右。
雖然此次處理的為測試環境,但處理hbase數據庫這種zk+hdfs+hbase常規綜合架構問題的思路可以分給大家,于是將此次問題處理的主要流程及思考,結合zookeeper及hbase相關各組件的原理介紹,分享如下。





故障處理過程



1. 登錄CM管理界面,發現登錄正常,但是集群處于關閉狀態。
2. 檢查集群節點磁盤狀態,發現狀態正常,未有磁盤滿的節點情況出現。
3. 嘗試對zookeeper服務進行啟動,發現無法啟動,報錯拒接連接。
操作解析:hbase的運行底層是依賴zookeeper組件存儲hbase運行所需的關鍵信息的,比如當前活動master節點、backup-masters節點、table名稱信息等,所以我們啟動hbase服務之前,前提一定是zookeeper服務啟動而且運行正常。
日常處理某些hbaes異常故障或者性能問題時,如果hbase側排查未發現明顯問題,此時也可以轉方向查看hbase所依賴的zookeeper組件或者hdfs組件是否有問題。
4. 檢查zookeeper實例,發現zk的實例被刪除了一個,進一步檢查zk的數據目錄,發現有一個log文件大小為0,懷疑此最新的異常log導致zk無法啟動。
5. zk的節點數進行恢復,并將異常的log文件log.d161f9進行刪除,同時將次新的一個數據文件和snapshot文件scp到新加入的zk節點數據目錄。
操作解析:zookeeper的運行中會定時將全量數據形成一個快照存放在zookeeper配置的數據目錄dataDir中,命名snapshot.<當前事務ID>,全量后續zk中的的變化會存儲在一個叫log.<當前事務ID>中。
所以zookeeper的正常運行其實只需要最近一次的snapshot和log文件,就能保證其數據的完整性,而且所有zk的節點的數據是一致的,如果某個節點數據異常,是可以將leader節點的dataDir中的最新snapshot和log文件復制到異常節點來進行啟動恢復的。
6. 再次對處理后的zookeeper服務進行啟動,已能夠成功啟動服務。
7. zookeeper啟動完成后,使用zkCli.sh命令行進入zk目錄,ls查看之前的文件,/hbase所使用的目錄均正常,數據未丟失。
8. 恢復hdfs服務,使用CM界面對hdfs服務進行啟動,啟動成功。
操作解析:hbase是一個數據庫,數據庫的運行會依賴文件系統,hbase所依賴的文件系統即是hdfs,所以啟動hbase之前,一定要保證hdfs的服務啟動且運行正常的。同理日常生產中有些hbase的性能問題,我們同樣可以從hdfs側的方向同步進行排查。
9. 恢復hbase服務,對hbase服務進行啟動,啟動成功。
10. 使用hbase shell命令行進入對hbase服務進行測試,發現異常報錯regions not online出現。
11. 檢查hbase-master日志,發現存在大量的reigons online信息。
12. 此時登錄CM界面和hbase-master web界面查看,也發現hbase存在大量的regions還在transition狀態,而且超過了水位線。 
13. 懷疑hbase出現regions過載,導致啟動后大量的regions需要重新上線,于是等待所有的reigons逐漸上線完成。
操作解析:hbase運行很久且存在大量數據時,hbase服務雖然啟動完成了,但是初始化進行大量的表和reigons上線其實是很耗時的,如果日常維護時發現hbase啟動后立即進行表數據的查詢發現報錯了,千萬不要盲目再次進行重啟,一定先檢查master日志看hbase集群是否還在初始化中,在擁有大量的表和regions的hbase集群中,hbase的完全啟動可能需要花費幾分鐘甚至幾十分鐘才能完成。
14. 上線完成后,hbase服務恢復正常,查詢已能夠正常返回結果,但集群共計10874個regions,共計2個節點,一個節點超過了5000+regions,比正常水平的單節點維持800-1000regions的建議值高了5倍以上。
15. hbase負載嚴重過載,與業務人員討論后,確定了清理過期測試數據的方案,釋放集群的regions數量,對2021年以前的所有表進行刪除。
16. 清理完成后,再次檢查regions總數,集群總regions數量已經2264個了,平均單節點1100個左右,基本處于正常水平。
操作解析:在官方的建議中,hbase的regionserver節點承載的reigons建議值是低于400,在實際使用和生產環境中,我們認為JVM設置最大32G時,低于1000個reigons是一個正常且安全的值(因為如果按官方低于400部署集群的話,集群所需的機器投入會更多)。
當hbase出現性能問題時,我們可以首先統計各個regionserver的承載regions數量,過多的regions存在某個reigonserver上時,就容易出現訪問熱點問題,集群的請求就會不平衡,這是日常最常見的hbase性能問題
17. 至此,hbase服務無法啟動的問題恢復完成,CM界面上所有的服務均啟動恢復完畢,故障處理完成因為測試集群機器數量無法滿足最低3節點原因,部分組件存在黃色告警信息,可忽略。





故障根因分析



此次故障初步分析根本原因hbase集群在進行相關寫入測試時,有大量的預分區和數據寫入,沒有及時進行清理,時間久了導致hbase因負載過高而崩潰。

潰后測試人員嘗試進行恢復但是失敗,期間進行了zk實例的刪除,zk異常啟動時,寫入log失敗導致出現了大小為0的最新log文件,進一步導致最終zk無法正常啟動。





 優化建議



1. 對hbase歷史的數據進行清理,釋放集群的regions數量,維持在較健康的水平(已完成);

2. 測試人員在后續測試后,及時進行hbase表及數據的清理,避免多人大量數據寫入導致hbase負載過高而崩潰,清理數據方法為truncate ‘tablename’(已通知測試人員);

3. 建議測試環境的重要權限進行人員管控,CM管理界面的admin密碼不要讓過多人員有權進行操作,避免再次出現誤刪除zookeeper實例或者其他實例的問題。





寫在文末



1. hbase集群的運行通常是一個zk+hdfs+hbase綜合的架構,處理hbase問題時,一定不要單只看hbase組件,綜合zookeeper和hdfs組件一起分析往往有奇效;

2. zookeeper組件在此綜合架構中屬于最底層,建議部署時只作為hdfs和hbase組件依賴使用,不要用于其他業務數據的存儲使用,避免zk的問題影響到整個hdfs和hbase集群;

3. 文中hbase regionserver建議承載reigons在1000以內是基于JVM設置32G的前提下的,如果環境JVM過小,承載regions的數量建議也對應減少,另regionserver的JVM不建議高于32G,避免GC的時機過久導致服務異常。




本文作者:何  青

本文來源:IT那活兒(上海新炬王翦團隊)

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/129575.html

相關文章

  • Apache Trafodion技術架構介紹

    摘要:它主要包括以下幾部分采用對文本進行文法分析,生成語法樹。對語法樹進一步進行分析,類似程序編譯器的語義分析,對語法合格的進一步進行檢查。優化器對語法樹應用各種規則,生成不同的執行計劃,形成一個搜索空間。 Trafodion簡介 Trafodion是一個構建在Hadoop/HBase基礎之上的關系型數據庫,它完全開源免費。Trafodion能夠完整地支持ANSI SQL,并且提供ACID事...

    DevYK 評論0 收藏0
  • Apache Trafodion技術架構介紹

    摘要:它主要包括以下幾部分采用對文本進行文法分析,生成語法樹。對語法樹進一步進行分析,類似程序編譯器的語義分析,對語法合格的進一步進行檢查。優化器對語法樹應用各種規則,生成不同的執行計劃,形成一個搜索空間。 Trafodion簡介 Trafodion是一個構建在Hadoop/HBase基礎之上的關系型數據庫,它完全開源免費。Trafodion能夠完整地支持ANSI SQL,并且提供ACID事...

    zhjx922 評論0 收藏0
  • Trafodion值得放入工具箱,因為有以下優點

    摘要:而支持事務處理,尤其是分布式情況下的事務和數據一致性是很復雜的事情。 Trafodion是Apache基金會的一個開源項目,提供了一個成熟的企業級SQL-on-HBase解決方案。Trafodion的主要設計思想是處理operational類型的工作負載,或者是傳統的OLTP應用。此外,對于需要保證數據一致性、需要標準SQL開發接口,或者需要實時數據讀寫分析的應用,Trafodion也...

    luckyyulin 評論0 收藏0

發表評論

0條評論

IT那活兒

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<