HBase怎麼將數據刷寫到HDFS


前言:圖片是HBase架構圖,建議結合架構圖,理解flush刷寫時機

對於客戶端來說,將數據寫到內存就結束了。但是對於HBase系統來說這個流程還沒有結束,還需要做合久必分,分久必合的操作。在合久必分,分久必合操作之前,還需要做flush操作。

memstore在刷寫的時候是有條件限制的,主要包括2點,時間和大小

1、region server的累計memstore的大小,超過堆內存的40%會觸發flush到磁盤的操作


2、region server中最後一條數據到達後,1小時內沒有新的數據進來,就會自動刷寫

3、Region中,累計memstore大小到達128M的時候,這個region的數據都會刷寫HDFS

4.當 WAL 文件的數量超過 hbase.regionserver.max.logs,region 會按照時間順序依次進行刷寫,直到 WAL 文件數量減小到 hbase.regionserver.max.log 以下(該屬性名已經廢棄,
現無需手動設置,最大值爲 32)

老版本可以看見這個參數,但是在新版本中這個參數依然存在,但是這個條件不暴露給用戶了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章