一、hbase的讀操作:
zookeeper---meta--regionserver--region--memstore--storefile
1、首先從zookerper找到meta表的region的位置,然後讀取meta表中的資料。而meta中又儲存了使用者表的region資訊
2、根據namespace、表名和rowkey根據meta表中的資料找到寫入資料對於的region資訊
3、然後找到對於的regionserver
4、查詢對應的region
5、先從memstore找資料,如果沒有,再到storefile上讀
二、hbase的寫操作:
zookeeper---meta--regionserver--1、hlog 1、memstore--storefile
1、首先從zookerper找到meta表的region的位置,然後讀取meta表中的資料。而meta中又儲存了使用者表的region資訊
2、根據namespace、表名和rowkey根據meta表中的資料找到寫入資料對於的region資訊
3、然後找到對於的regionserver
4、把資料分別寫到hlog和memstore各乙份
4、1當memstore達到閾值後把資料刷成乙個storefile檔案,當compact後,逐漸形成越來越大的storefile後觸發spilt,
把當前的storefile分成兩個,這裡相當於把乙個大的region分割成兩個region
4、1若memstore中的資料有丟失,則可以從hlog上恢復,當多個storefile檔案達到一定的大小後,會觸發compact合併操作,
合併為乙個storefile,這裡同時進行版本的合併和資料刪除
HBase 讀寫流程
1.讀流程 client先訪問zookeeper,從meta表讀取region的位置,然後讀取meta表中的資料。meta中又儲存了使用者表的region資訊 根據namespace 表名和rowkey在meta表中找到對應的region資訊 找到這個region對應的regionserver 查詢...
HBase讀寫流程
1 client先訪問zookeeper,從meta表讀取region的位置,然後讀取meta表中的資料。meta中又儲存了使用者表的region資訊 2 根據namespace 表名和rowkey在meta表中找到對應的region資訊 3 找到這個region對應的regionserver 4 ...
HBase讀寫流程
寫流程參考 1.首先,客戶端需要獲知其想要讀取的資訊的region的位置,這個時候,client訪問hbase上資料時並不需要hmaster參與 hmaster僅僅維護著table和region的元資料資訊,負載很低 只需要訪問zookeeper,從meta表獲取相應region資訊 位址和埠等 c...