Hbase(二)架構與表模型

2021-10-10 09:59:42 字數 1900 閱讀 8470

參考文章

深入hbase架構解析(一)

表模型

hbase是內建的有zookeeper的,主節點中的 meta table中儲存了集群中所有使用者hregion的位置資訊,而zookeeper的節點中(/hbase/meta-region-server)儲存的則直接是這個meta table的位置。

所有region server都嘗試連線zookeeper, 並在這個session中建立乙個臨時節點(ephemeral node). hbase的master節點監控這些臨時節點的是否存在, 可以發現新加入region server和判斷已經存在的region server宕機.

為了高可用需求, hbase的master也有多個, 這些master節點也同時向zookeeper註冊臨時節點(ephemeral node). zookeeper把第乙個成功註冊的master節點設定成active狀態, 而其他master node處於inactive狀態.

主節點:主要負責region的分配以及管理從節點。

hmaster沒有單點故障問題,可以啟動多個hmaster,通過zookeeper的master election機制保證同時只有乙個hmaster處於active狀態,其他的hmaster則處於熱備份狀態。一般情況下會啟動兩個hmaster,非active的hmaster會定期的和active hmaster通訊以獲取其最新狀態,從而保證它是實時更新的,因而如果啟動了多個hmaster反而增加了active hmaster的負擔。前文已經介紹過了hmaster的主要用於hregion的分配和管理,ddl(data definition language,既table的新建、刪除、修改等)的實現等,既它主要有兩方面的職責:

協調hregionserver

hbase使用rowkey將表水平切割成多個hregion,從hmaster的角度,每個hregion都紀錄了它的startkey和endkey(第乙個hregion的startkey為空,最後乙個hregion的endkey為空),由於rowkey是排序的,因而client可以通過hmaster快速的定位每個rowkey在哪個hregion中。

存放和管理本地hregion

讀寫hdfs,管理table中的資料。

從hmaster中獲取元資料,找到rowkey所在的hregion/hregionserver後。client直接通過hregionserver讀寫資料。

hregionserver一般和datanode在同一臺機器上執行,實現資料的本地性。hregionserver包含多個hregion,由wal(hlog)、blockcache、memstore、hfile(storefile合併而成)組成。

乙個memorystore,記憶體空間,128m + 多個storefile檔案,記憶體中資料flush到檔案中來。

乙個region中只可能存在一張表的資料。

每個表最小包含兩個元素。 列族與列

每個列必然歸屬於某乙個列族,每個列族下面可以有很多列。

每個列族主要用於維護資料的訪問。一般一張表之中不要設定太多的列族。太多的列族將影響資料的讀取速度。

類似於mysql中的主鍵,不同的rowkey代表不同行。

timestamp 則是每個值的版本號標識。預設情況下,timestamp 的值是更新資料時的當前時間戳,由系統自動更新

Dubbo實踐(二)架構

節點角色說明 節點 角色說明 provider 暴露服務的服務提供方 consumer 呼叫遠端服務的服務消費方 registry 服務註冊與發現的註冊中心 monitor 統計服務的呼叫次數和呼叫時間的監控中心 container 服務執行容器 呼叫關係說明 服務容器負責啟動,載入,執行服務提供者...

Springmvc入門基礎 二 架構詳解

架構流程文字說明 使用者傳送請求至前端控制器dispatcherservlet dispatcherservlet 處理器對映器根據請求url找到具體的處理器,生成處理器物件及處理器 如果有則生成 一併返回給dispatcherservlet。dispatcherservlet 通過handlera...

kafka學習筆記(二)架構深入

1 kafka的工作流程 kafka 中訊息是以 topic 進行分類的,生產者生產訊息,消費者消費訊息,都是面向 topic的。2 kafka的儲存機制 kafka採取了分片和索引機制,每個partition分為多個segment。每個segment包含 0000 x.index 檔案和 0000...