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

資訊專欄INFORMATION COLUMN

開源組件Hbase之RIT故障修復

IT那活兒 / 1053人閱讀
開源組件Hbase之RIT故障修復

為方便大家對故障處理有一個更好的理解,本文前半章簡單扼要的介紹一下Hbase的相關信息,后半章是筆者工作中遇到的故障處理分享。



       Hbase起源說明        



HBase是一個開源的非關系型分布式數據庫,它參考了谷歌的BigTable建模,實現的編程語言為Java。它是Apache軟件基金會的Hadoop項目的一部分,運行于HDFS文件系統之上,為Hadoop提供類似于BigTable規模的服務。因此,它可以容錯地存儲海量稀疏的數據。

HBase是一個高可靠、高性能、面向列、可伸縮的分布式數據庫,是谷歌BigTable的開源實現,主要用來存儲非結構化和半結構化的松散數據。HBase的目標是處理非常龐大的表,可以通過水平擴展的方式,利用廉價計算機集群處理由超過10億行數據和數百萬列元素組成的數據表。



Hadoop生態為什么需要Hbase


  • Hadoop可以很好地解決大規模數據的離線批量處理問題,但是受限于HadoopMapReduce編程框架的高延遲數據處理機制,使得Hadoop無法滿足大規模數據實時處理應用的需求。


  • HDFS面向批量訪問模式,不是隨機訪問模式。


  • 傳統的通用關系型數據庫無法應對在數據規模劇增時導致的系統擴展性和性能問題(分庫分表也不能很好解決)。


  • 傳統關系數據庫在數據結構變化時一般需要停機維護;空列浪費存儲空間。



HBase與傳統關系數據庫區別


  • 1、數據類型:關系數據庫采用關系模型,具有豐富的數據類型和存儲方式,HBase則采用了更加簡單的數據模型,它把數據存儲為未經解釋的字符串。

  • 2、數據操作:關系數據庫中包含了豐富的操作,其中會涉及復雜的多表連接。HBase操作則不存在復雜的表與表之間的關系,只有簡單的插入、查詢、刪除、清空等,因為HBase在設計上就避免了復雜的表和表之間的關系。

  • 3、存儲模式:關系數據庫是基于行模式存儲的。HBase是基于列存儲的,每個列族都由幾個文件保存,不同列族的文件是分離的。

  • 4、數據索引:關系數據庫通常可以針對不同列構建復雜的多個索引,以提高數據訪問性能。HBase只有一個索引——行鍵,通過巧妙的設計,HBase中的所有訪問方法,或者通過行鍵訪問,或者通過行鍵掃描,從而使得整個系統不會慢下來。

  • 5、數據維護:在關系數據庫中,更新操作會用最新的當前值去替換記錄中原來的舊值,舊值被覆蓋后就不會存在。而在HBase中執行更新操作時,并不會刪除數據舊的版本,而是生成一個新的版本,舊有的版本仍然保留。

  • 6、可伸縮性:關系數據庫很難實現橫向擴展,縱向擴展的空間也比較有限。相反,HBase和BigTable這些分布式數據庫就是為了實現靈活的水平擴展而開發的,能夠輕易地通過在集群中增加或者減少硬件數量來實現性能的伸縮。



        Hbase架構原理      



HBase的實現包括三個主要的功能組件:

  • 1、庫函數:鏈接到每個客戶端

  • 2、一個Master主服務器

  • 3、許多個Region服務器

主服務器Master負責管理和維護Hbase表的分區信息,維護Region服務器列表,分配Region,負載均衡。

Region服務器負責存儲和維護分配給自己的Region,處理來自客戶端的讀寫請求。

客戶端并不是直接從Master主服務器上讀取數據,而是在獲得Region的存儲位置信息后,直接從Region服務器上讀取數據。

客戶端并不依賴Master,而是通過Zookeeper來Region位置信息,大多數客戶端甚至從來不和Master通信,這種設計方式使得Master負載很小。




上面介紹了Hbase的相關信息,下面就筆者工作中遇到的一個關于region故障進行分享。業務側報障大數據平臺,發現業務系統請求量明顯偏低,查看監控發現Hbase的請求量很低,甚至為0,產生告警,下面開始診斷過程:




軟件版本:



Hbase

組件版本:

Hbase:1.2.1





問題定位


通過查看Hbase監控頁面,發現18號節點不在服務中,遠程連接比較卡頓,通過終端查看HRegionServer進程在,查看系統日志:

重啟后,日志變為正常

綜上判斷可能是因為網絡通信原因導致18號節點異常。

Hbase日志:顯示18號,region已下線


Hbase監控頁面:RIT問題

綜上,可判斷由于18號節點連接異常,導致當前節點Hbase異常,另外Hbase出現RIT,會影響Hbase的寫入。



解決過程


嘗試重啟,但請求量仍然很低,后來將18號的Regionserver下線,效果不理想,最后決定做Hbase在線修復(18號已下線),Hbase狀態:


步驟:

  • 1. hbase hbck 檢查輸出所以ERROR信息,每個ERROR都會說明錯誤信息。


  • 2. hbase hbck -fixTableOrphans 先修復tableinfo缺失問題,根據內存cache或者hdfs table 目錄結構,重新生成tableinfo文件。


  • 3. hbase hbck -fixHdfsOrphans 修復regioninfo缺失問題,根據region目錄下的hfile重新生成regioninfo文件。


  • 4. hbase hbck -fixHdfsOverlaps 修復region重疊問題,merge重疊的region為一個region目錄,并從新生成一個regioninfo。


  • 5. hbase hbck -fixHdfsHoles 修復region缺失,利用缺失的rowkey范圍邊界,生成新的region目錄以及regioninfo填補這個空洞。


  • 6. hbase hbck -fixMeta 修復meta表信息,利用regioninfo信息,重新生成對應meta row填寫到meta表中,并為其填寫默認的分配regionserver。


  • 7. hbase hbck -fixAssignments 把這些offline的region觸發上線,當region開始重新open 上線的時候,會被重新分配到真實RegionServer上 , 并更新meta表上對應的行信息。另外,當執行完所有修復步驟后仍然有:ERROR: Empty REGIONINFO_QUALIFIER found in hbase:meta。執行:hbase hbck -fixEmptyMetaCells。


修復近三個小時,修復完成后,重啟了Hbase,RIT異常解決了,再次檢查出現了新的問題:

1、元數據缺失

2、region重疊


再利用之前的修復命令無法修復。

解決方法:

針對1:

通過執行hbasehbck-fixEmptyMetaCells

修復ERROR:EmptyREGIONINFO_QUALIFIER found in hbase:meta


針對2:

deletehbase:meta,DBN_YTO,601889669485241086,1536145292692.f47aaa41740bf9d99b1cc19b3de29d9b.,info:regioninfo

deletehbase:meta,DBN_YTO,601889669485241086,1546409804387.7795e5726f6f9e018cfa2fe93b20556d.,info:regioninfo

hdfsdfs -rm-r/hbase/data/default/DBN_YTO/f47aaa41740bf9d99b1cc19b3de29d9b

hdfsdfs -rm-r/hbase/data/default/DBN_YTO/7795e5726f6f9e018cfa2fe93b20556d

最后執行:

hbasehbck -fixAssignments-fixMeta -fixHdfsHoles

Hbase狀態為正常,到此Hbase修復完畢。



總結


Hbase在線修復之前首先保證停掉相關業務,并且確保所有region都在線,否則修復可能會產生重復region,另外確保hbase根目錄下文件沒有損壞丟失,如果有,先移除掉,再修復。

移除命令:

hdfsfsck -delete

本次分享結束,后續我將繼續帶來關于Hbase日常運維的總結分享,我們下次再見。


文中相關參考資料來源:

鏈接:https://www.jianshu.com/p/53864dc3f7b4  作者:Michaelhbjian來源:簡書

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

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

相關文章

  • HBase 托管Hadoop集群 UHadoop

    摘要:如果頻繁遇到這個問題可能是的參數或者其他方面設置的不合理,需要調整一下。 HBase本篇目錄HBase某一個表數據無法寫入,也無法讀取,從WebUI界面查看到有多個Region狀態為region in transaction是因為?讀取、寫入數據時,為什么找不到region?HBase某一個表數據無法寫入,也無法讀取,從WebUI界面查看到有多個Region狀態為region in tran...

    ernest.wang 評論0 收藏183
  • 「回顧」網易數據基礎平臺建設

    摘要:特點有聚合運算相關算法,時序數據庫相對于關系型數據庫沒有特別復雜的查詢,最常見的使用類型是寬表使用,在此基礎上做一些聚合算法插值查詢。 首先簡單介紹一下網易杭州研究院情況簡介,如下圖所示: showImg(https://segmentfault.com/img/bVbni6K?w=720&h=285); 我們公司主要從事平臺技術開發和建設方面,工作的重點方向主要在解決用戶在數據治理中...

    sevi_stuo 評論0 收藏0
  • HBase運維基礎——元數據逆向修復原理

    摘要:本文就運維的原理基礎開始入手,重點講解數據完整性,以及元數據逆向工程恢復數據完整性的原理方法。小結本文介紹了運維基礎原理中的數據完整性以及逆向元數據修復原理,并舉例介紹兩個逆向修復元數據的工具和實用執行步驟。 背景鑒于上次一篇文章——云HBase小組成功搶救某公司自建HBase集群,挽救30+T數據的讀者反饋,對HBase的逆向工程比較感興趣,并咨詢如何使用相應工具進行運維等等。總的來...

    ctriptech 評論0 收藏0

發表評論

0條評論

IT那活兒

|高級講師

TA的文章

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