HBase為每個Region維護一個狀態,并將該狀態保留在hbase:meta中,hbase:meta 本身的Region狀態保留在ZooKeeper中,可以在Master Web UI中查看Region的過渡狀態,以下是可能的Region狀態串列,

1. 狀態機中包括下面幾種狀態:
-
offline:region離線沒有開啟,
-
opening:region正在被打開,
-
open:region正在打開,并且region server通知了master,
-
failed_open:regionserver打開失敗,
-
closing:region正在被關閉,
-
closed:regionserver正在關閉,并且已經通知了master,
-
failed_close:regionserver關閉失敗了,
-
splitting:region server通知master,region正在被切分,
-
split:region server通知master,region已經被切分完了,
-
spliting_new:region是切分程序中新建的檔案,
-
merging:regionserver通知master region正在合并,
-
merged:regionserver通知master region合并完了,
-
merging_new:region是合并新建出來的,
2. 不同的顏色是不同含義:
-
棕色:離線狀態,屬于一種短暫的瞬間狀態(比如關閉后開啟的中間狀態)、停止狀態或者初始化的時候的狀態,
-
綠色:正常的狀態,可以支持請求訪問,
-
藍色:短暫的狀態,
-
紅色:失敗,
-
黃色:合并或者切分的狀態,
-
灰色:剛開始的狀態,
3. 各個序號代表不同的操作場景:
-
Master向region server發起region從offline到openning的狀態請求,regionserver如果沒有收到,master會嘗試重試幾次,RegionServer接收到請求后,regin狀態變成opening
-
如果Master發起的open請求超過次數,那么無論region server是否已經打開region,master都會命令region server關閉檔案,狀態變為closing,
-
當region server打開region后,會嘗試通知master,讓他把region狀態修改為open,并通知regsion server,這樣region才能變為open狀態,
-
如果region server打開四百,會嘗試通知master,master會把region的狀態變更為closed,并且嘗試去其他的region server打開region
-
如果master嘗試幾次后,都沒有打開region,就會把狀態變更為failed_open
-
master通知region server關閉region,如果沒有反應,會重試
-
如果region server沒有在線,會拋出例外,然后region的狀態會變成closing
-
如果region server在線,但是好幾次都沒回應,就會更新狀態為failed_close
-
如果region server收到請求,并且關閉了region,那么會通知master把region狀態修改為closed,并且把region分配給其他的server
-
在分配之前,master會先把region從closed狀態轉換為offline
-
如果region server正在切分region,會通知mastere,master把region狀態由open變為splitting,并且把新增兩個region的資訊,這兩個region都是splitting_new狀態
-
如果region切分成功,當前的region狀態從splitting變成split;新增的兩個region狀態從splitting_new變成open
-
如果切分失敗,狀態從splitting回到open,兩個region也從splitting_new變成offline
-
如果region server想要合并兩個region,那么也會先通知master,master把兩個region從open變成merging,然后增加一個新的region,狀態為merging_new
-
如果合并成功, 舊的region從merging變為merged,新的region從merging_new變為open
-
如果合并失敗,region的狀態從merging變回open,新建的一個region狀態又變成offline
-
如果管理員通過hbase shell操作分配region,master會嘗試把失敗的狀態變成close
4. 參考
http://hbase.apache.org/2.2/book.html#regions.arch

轉載請注明出處!歡迎關注本人微信公眾號【HBase作業筆記】
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/6029.html
標籤:大數據
下一篇:Zookeeper 資料結構詳解
