Region 切分是一個事務過程,分成三個階段
Prepare 階段:
在內存中初始化兩個子 Region,具體是生成兩個 HRegionInfo 對象,包含TableName、RegionName、startkey、endkey 等信息。同時會生成一個用來記錄 Split 進展的對象。
Execute 階段:
* 首先更改當前 Region 在 Zookeeper 中的狀態為 SPLITING。master 也會同步這個狀態。 * 生成兩個子文件,只存儲切分點 splitkey 和一個 Boolen 類型變量(用來標記這個文件是上半部分還是下半部分)。 * 為避免數據的頻繁讀寫,只有在子Region執行 Major Compact 后才會將父Region中屬于該子Region的所有數據讀出來并寫入數據文件中。
Rollback 階段:
如果 execute 階段出現異常,則執行 rollback 操作。為了實現回滾,整個切分過程被分為很多子階段,回滾程序會根據當前進展到哪個子階段來清理對應的垃圾數據,根據切分進展來做不同的回滾操作
更多關于“大數據培訓”的問題,歡迎咨詢千鋒教育在線名師。千鋒教育多年辦學,課程大綱緊跟企業需求,更科學更嚴謹,每年培養泛IT人才近2萬人。不論你是零基礎還是想提升,都可以找到適合的班型,千鋒教育隨時歡迎你來試聽。