Hbase-原理-region合併和hfile的合併(大合併、小合併)

披著狼皮的小紅帽_ 發表於 2020-11-27

Hbase-原理-region合併

為什麼要合併region呢?
因為在刪除region中的資訊的過程中會急劇減少region的行數,導致一個region server中的region太小,所以將多個region合併成少量的region

region手動合併(shell)

表tb_stu的原region資訊

list_regions 'tb_stu'

在這裡插入圖片描述

合併兩個region

merge_region 'a8c282eafa0589e96213b79b6132410d','aaa7d4f6003b2f6fc5ca88e78daf2ff5'

在這裡插入圖片描述

  • 在HDFS中檢視
    在這裡插入圖片描述
  • 原region會在一段時間後自動消失

在這裡插入圖片描述

上面的region合併是大合併
有大量的更新資料和有大量的i小資料的情況下會出發大合併,大合併會佔用很大的資源

hfile合併

在更新資料的過程中,會在HDFS中生成新的hfile檔案用來記錄使用者的操作

在這裡插入圖片描述

當使用者在刪除資料的時候會出現新的hfile檔案,並有墓碑標記
如果使用者查詢資料的時候,會從兩個hfile檔案中結合取資料
所以說Hbase的增刪改查跟HDFS的不能隨意修改不相違背的

經過一段時間後會將兩個hfile檔案進行合併,生成新的hfile檔案(hfile合併俗稱小合併)

在這裡插入圖片描述