hbase的架構:
包含訪問hbase的介面並維護cache來加快對hbase的訪問
zookeeper
保證任何時候,集群中只有乙個master
存貯所有region的定址入口。
實時監控region server的上線和下線資訊。
並實時通知master
儲存hbase的schema和table元資料
master
為region server分配region
負責region server的負載均衡
發現失效的region server並重新分配其上的region
管理使用者對table的增刪改操作
regionserver
region server維護region,處理對這些region的io請求
region server負責切分在執行過程中變得過大的region
region
hbase自動把錶水平劃分成多個區域(region),每個region會儲存乙個表裡面某段連續的資料
每個表一開始只有乙個region,隨著資料不斷插入表,region不斷增大,當增大到乙個閥值的時候,region就會等分會兩個新的region(裂變)
當table中的行不斷增多,就會有越來越多的region。這樣一張完整的表被儲存在多個regionserver 上。
每乙個region由乙個或多個store組成,至少是乙個store,hbase會把一起訪問的資料放在乙個store裡面,即為每個columnfamily建乙個store,如果有幾個columnfamily,也就有幾個store。乙個store由乙個memstore和0或者多個storefile組成。 hbase以store的大小來判斷是否需要切分region。
memstore 與 storefile
乙個region由多個store組成,乙個store對應乙個cf(列族)
store包括位於記憶體中的memstore和位於磁碟的storefile
memstore:
region的寫快取。儲存還未寫入hfile的資料,寫入資料前會先做排序,每個region每個cf都會擁有乙個memstore,這就是為什麼cf不能建太多的原因。
寫操作先寫入memstore,當memstore中的資料達到某個閾值,hregionserver會啟動flashcache程序寫入storefile,每次寫入形成單獨的乙個storefile
當storefile檔案的數量增長到一定閾值後,系統會進行合併(minor、major compaction),在合併過程中會進行版本合併和刪除工作(majar),形成更大的storefile
當乙個region所有storefile的大小和數量超過一定閾值後,會把當前的region分割為兩個,並由hmaster分配到相應的regionserver伺服器,實現負載均衡 客戶端檢索資料,先在memstore找,找不到再找storefile
hregion是hbase中分布式儲存和負載均衡的最小單元。最小單元就表示不同的hregion可以分布在不同的 hregion server上。
hregion由乙個或者多個store組成,每個store儲存乙個columns family。
每個strore又由乙個memstore和0至多個storefile組成。如圖:storefile以hfile格式儲存在hdfs上。
HBase 架構組成
主要負責hregionserver的協調管理及table的ddl操作 新增 更新和刪除 hregionserver的管理包含兩方面 監控hregionserver的執行狀態 從zk接受通知 region的分配 hregionserver擴容 宕機及負載均衡等情況 hmaster的ha解決方案 主備切...
HBase架構解析
hbase是存大資料的,之前也用過,一直沒好好的梳理下整個原理,通過網上搜尋和阿里大學的免費課程,總結了一下,希望對大家有所幫助,理論都是無聊的,希望大家能耐下心來一起成長。client就是你的 順序是這樣的 1 先訪問zookeeper,獲取region server位址。2 client再去訪問...
HBase儲存架構
以下的介紹是基於apache hbase 0.94版本 從hbase的架構圖上可以看出,hbase中的儲存包括hmaster hregionserver hregion store memstore storefile hfile hlog等,本篇文章統一介紹他們的作用即儲存結構。以下是hbase儲...