HBASE 詳細架構 資料讀寫

2021-10-01 05:10:27 字數 841 閱讀 3333

資料的讀寫流程不依賴於master,但是長期在沒有master的情況下進行資料的讀寫是不健康的。例如,當乙個region過大進行切分之後,沒有master是無法把切分後的資料分配到其他節點上去的。

寫流程:

請求regionserver找到meta表

通過meta的內容找到目標寫入資料的位置資訊

通過位置資訊,往目標表中寫入資料。先寫wal檔案,再寫入記憶體(客戶端操作到此為止)

後續再把檔案寫入到storefile中

關於flush:

讀流程:

hbase因為儲存機制的原因,讀流程不論什麼情況都是要讀取磁碟資訊的,所以過程比較慢。

如下圖所示,hbase讀取資料並不是按照block cache–>memstore–>storefile這樣的順序讀取的,而是三個部分都需要讀取,最後比較取出的相同的rowkey中時間戳最靠後的那一條顯示出來。block cache中有的資料,在讀取storefile的時候可以不必再讀取,但僅僅只是那一條資料檔案不用讀取而已。

一定要讀磁碟主要是為了防止後寫入的資料在記憶體中還未刷寫,但是它的時間戳是自定義的,比磁碟記錄的時間戳更靠前,而唯讀到記憶體就會導致讀出的資料不是時間戳最後的資料。

HBase讀寫流程詳細解讀

插入一條資料到某個表,因為hbase通過zookeeper協調 client 首先連線zookeeper,從zookeeper中獲取表region相關資訊。根據要插入的rowkey,獲取指定的regionserver資訊,如果是批量提交的話,會把rowkey根據hregion location進行分...

HBase架構及讀寫流程

hbase架構分析 負責管理hbase元資料,即表的結構 表儲存的region等元資訊。負責表的建立,刪除和修改 因為這些操作會導致hbase元資料的變動 負責為hregionserver分配region,分配好後也會將元資料寫入相應位置 後面會詳細講述放在哪 如果對可用性要求較高,它需要做ha高可...

HBase資料讀寫

hbase寫資料架構圖 hbase寫過程如下 先將資料寫到wal中 wal存放在hdfs上 每次put delete操作的資料均追加到wal末端 持久化到wal之後,再寫到memstore中 兩者寫完返回ack客戶端。memstore其實是一種記憶體結構,乙個column family對應乙個mem...