面試題來源:
《大數(shù)據(jù)面試題 V4.0》
大數(shù)據(jù)面試題V3.0,523道題,679頁,46w字
可回答:1)HBase一個節(jié)點宕機了怎么辦;2)HBase故障恢復
參考答案:
1、HBase常見故障
導致RegionServer故障的原因:
-
FullGc引起長時間停頓
-
HBase對Jvm堆內存管理不善,未合理使用堆外內存
-
Jvm啟動參數(shù)配置不合理
-
業(yè)務寫入或吞吐量太大
-
寫入讀取字段太大
-
HDFS異常
-
讀取寫入數(shù)據(jù)都是直接操作hdfs的,若hdfs發(fā)生異常,會導致region server直接宕機
-
-
機器宕機
-
物理節(jié)點直接宕機
-
虛擬云主機不穩(wěn)定,包括網(wǎng)絡環(huán)境等
-
2、HBase常見故障恢復
Master故障恢復原理
在HBase體系結構中,Master主要負責實現(xiàn)集群的負載均衡和讀寫調度,并沒有直接參與用戶的請求,所以整體負載并不很高。
HBase采用基本的熱備方式來實現(xiàn)Master高可用。通常情況下要求集群中至少啟動兩個Master進程,進程啟動之后會到ZooKeeper上的Master節(jié)點進行注冊,注冊成功后會成為ActiveMaster,其他在Master節(jié)點未注冊成功的進程會到另一個節(jié)點Backup-Masters節(jié)點進行注冊,并持續(xù)關注Active Master的情況,一旦Active Master發(fā)生宕機,這些Backup-Masters就會立刻得到通知,它們再次競爭注冊Master節(jié)點,注冊成功就可成為Active Master。
一方面,Active Master會接管整個系統(tǒng)的元數(shù)據(jù)管理任務,包括管理ZooKeeper以及meta表中的元數(shù)據(jù),并根據(jù)元數(shù)據(jù)決定集群是否需要執(zhí)行負載均衡操作等。另一方面,Active Master會響應用戶的各種管理命令,包括創(chuàng)建、刪除、修改表,move、merge region等命令。
RegionServer故障恢復原理
Master如何檢測RegionServer宕機:
-
HBase檢測宕機是通過Zookeeper實現(xiàn)的, 正常情況下RegionServer會周期性向Zookeeper發(fā)送心跳,一旦發(fā)生宕機,心跳就會停止,超過一定時間(SessionTimeout)Zookeeper就會認為RegionServer宕機離線,并將該消息通知給Master。
一旦RegionServer發(fā)生宕機,HBase會馬上檢測到這種宕機,并且在檢測到宕機之后將宕機RegionServer上的所有Region重新分配到集群中其他正常的RegionServer上,再根據(jù)HLog進行丟失數(shù)據(jù)恢復,恢復完成之后就可以對外提供服務。整個過程都是自動完成的,并不需要人工介入。
基本原理如下圖所示:
1)Master檢測到RegionServer宕機。HBase檢測宕機是通過ZooKeeper實現(xiàn)的,正常情況下RegionServer會周期性向ZooKeeper發(fā)送心跳,一旦發(fā)生宕機,心跳就會停止,超過一定時間(SessionTimeout)ZooKeeper就會認為RegionServer宕機離線,并將該消息通知給Master。
2)切分未持久化數(shù)據(jù)的HLog日志。RegionServer宕機之后已經(jīng)寫入MemStore但還沒有持久化到文件的這部分數(shù)據(jù)必然會丟失,HBase提供了WAL機制來保證數(shù)據(jù)的可靠性,可以使用HLog進行恢復補救。HLog中所有Region的數(shù)據(jù)都混合存儲在同一個文件中,為了使這些數(shù)據(jù)能夠按照Region進行組織回放,需要將HLog日志進行切分再合并,同一個Region的數(shù)據(jù)最終合并在一起,方便后續(xù)按照Region進行數(shù)據(jù)恢復。
3)Master重新分配宕機RegionServer上的Region。RegionServer宕機之后,該RegionServer上的Region實際上處于不可用狀態(tài),所有路由到這些Region上的請求都會返回異常。但這種情況是短暫的,因為Master會將這些不可用的Region重新分配到其他RegionServer上,但此時這些Region還并沒有上線,因為之前存儲在MemStore中還沒有落盤的數(shù)據(jù)需要回放。
4)回放HLog日志補救數(shù)據(jù)。第3步中宕機RegionServer上的Region會被分配到其他RegionServer上,此時需要等待數(shù)據(jù)回放。第2步中提到HLog已經(jīng)按照Region將日志數(shù)據(jù)進行了切分再合并,針對指定的Region,將對應的HLog數(shù)據(jù)進行回放,就可以完成丟失數(shù)據(jù)的補救工作。
5)恢復完成,對外提供服務。數(shù)據(jù)補救完成之后,可以對外提供讀寫服務。
HBase故障恢復流程總結如下:
-
故障檢測
-
數(shù)據(jù)切分
-
region上線文章來源:http://www.zghlxwxcb.cn/news/detail-624119.html
-
數(shù)據(jù)回放文章來源地址http://www.zghlxwxcb.cn/news/detail-624119.html
到了這里,關于大數(shù)據(jù)面試題:HBase的RegionServer宕機以后怎么恢復的?的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!