客戶端請求寫資料首先會向zookeeper中的leader傳送寫資料的請求
在請求成功後leader會向客戶端傳送meta表的位置,告訴客戶端meta表在哪台regsion server上面
解析出meta表中的資料後,會向對應的regsion server機器傳送寫資料請求,請求成功後會在向該機器中寫入資料
在regsion server接收客戶端寫入的資料時,同時也會向日誌和對應的regison記憶體中寫入相關的資料,向日誌檔案和記憶體中寫資料時存在事物關係,只有成功寫入才能向hdfs中儲存資料.
最後將regsion server向hdfs傳送請求,將資料寫入到hdfs中,並儲存
如下圖:
客戶端向zookeeper及傳送讀取資料請求,不需要看master的狀態
請求成功後leader會將meta元資料傳送給客戶端
客戶端根據meta元資料找到對應的regsion server,並發起請求
請求成功後,客戶端首先會從rs的記憶體中訪問資料,如果記憶體中沒有,再向rs中的cacheblock(快取塊)中訪問資料,如果都沒有,最後從hdfs中訪問資料
如下圖:
HBase讀寫資料流程
hbase的系統表 hbase namespace 儲存了hbase中的所有namespace的資訊 hbase meta 儲存了hbase中所有的region的資訊,包括rowkey範圍,region所在的regionserver的位址。hbase meta 在zookeeper中,進入zooke...
HBase讀寫資料流程
客戶端現在要插入一條資料,rowkey r000001,這條資料應該寫入到table表中的那個region中呢?1 客戶端要連線zookeeper,從zk的 hbase 節點找到 hbase meta 表所在的regionserver host port 2 regionserver 掃瞄 hbas...
HDFS讀寫資料流程
步驟 1 客戶端通過 distributed filesystem 模組向namenode請求上傳檔案,namenode檢查目標檔案是否已存在,父目錄是否存在。2 namenode返回是否可以上傳。3 客戶端請求第乙個 block 上傳到哪幾個 datanode 伺服器上。4 namenode返回3...