1. 包含訪問hbase的介面,並維護cache來加快對hbase的訪問,比如region的位置資訊。
* zookeeper:
1. 選舉集群中的master,master與regionservers 啟動時會向zookeeper註冊。
2. 儲存所有region的定址入口。
3. 實時監控region server狀態並實時通知master。
4. 儲存hbase的schema和table元資料。
5. 使master不存在單點故障。
* master
1. 在region split後,為region server分配region。
2. 管理hregionserver的負載均衡,調整region分布。
3. 發現失效的region server後重新分配其上的region,並負責regions遷移。。
4. 管理使用者對table的增刪改查操作。
* region server
1. regionserver維護region,處理對這些region的io請求,向hdfs檔案系統讀寫資料。
2. regionserver負責切分在執行過程中變得過大的region。
* region
1. table按照行分割成若干region,每個region對應table中的乙個region。
2. region由多個hstore組成。
* hlog
1. 類似mysql的binlog,資料會先寫到wal上,然後再放到記憶體中,資料恢復。
2. 已經持久化到storefile的hlog會定期被刪除。
* hstore
1. hbase的儲存核心,由memstore和storefile組成。
2. 每個hstore對應table的乙個列族的儲存。
* memstore
1. 資料不直接寫磁碟而是先寫到memstore,當滿了才會flush到storefile中。
2. 底層由hfile實現。
3. 資料只需寫入到此記憶體即可返回,快速的插入操作。
* storefile
1. storefile檔案數到一定閥值會觸發compact合併操作,多個storefile變成乙個storefile。
2. 所有資料操作都是新增操作,保證i/o,而對於資料更新/刪除都是在後續compact過程中完成。
hbase支援很多檔案系統的儲存。
1. 作業系統原生檔案系統。
2. hdfs檔案系統。
3. 其他檔案系統。
hdfs可靠性高及其同屬同個生態,選擇hdfs作為儲存。
定址過程大致為client -> -root- -> .meta. -> rs ->region -> rowkey。
client通過zookeeper的root-region-server節點獲取哪個server管理-root-表,包含該機器的ip位址和埠。
接著訪問-root-表,該錶只有乙個region且不會split,每行記錄了.meta.表的乙個region資訊,以及這個region的startkey和endkey,查詢到.meta.表包含要查的rowkey記錄的region的ip和埠。
接著訪問該ip和埠的.meta.表,根據rowkey找到使用者表資料存放對應的region的機器資訊,根據rowkey查詢對應的regionserver和region。最後到對應的region找到value。
根據查到的使用者表資訊到對應機器上查詢資料。
客戶端會快取查詢過的rowkey的位址。
client訪問hbase上資料的過程並不需要master參與(定址訪問zookeeper和region server,資料讀寫訪問region server),master僅僅維護table和region的元資料資訊,負載很低。
詳細的一些資料後面在寫**階段會給出。
當資料峰值接近系統設計容量時,可以簡單的通過增加伺服器的方式來擴大容量。某種程度上來說,這個動態擴容過程無需停機,hbase系統可以照常執行並提供讀寫服務,完全實現動態無縫無宕機擴容。
balance模式下,會自動將資料遷移到新機器上,適合中小集群,遷移過程大量消耗機器資源。
非balance模式下,新寫入檔案寫到新機器上。
官方的命令列或二次開發,rest介面。官方有原生監控平台。
biginsights。
hbase優勢在於接近線性的任意水平擴充套件,不必在單機上與redis效能太較真,看自己場景選擇。
*****===廣告時間*****===
鄙人的新書《tomcat核心設計剖析》已經在京東銷售了,有需要的朋友可以到 進行預定。感謝各位朋友。
為什麼寫《tomcat核心設計剖析》
HBase作為儲存方案
1.包含訪問hbase的介面,並維護cache來加快對hbase的訪問,比如region的位置資訊。zookeeper 1.選舉集群中的master,master與regionservers 啟動時會向zookeeper註冊。2.儲存所有region的定址入口。3.實時監控region server...
Hbase儲存相關
hbase 的儲存機制 region 區域 表上的一塊資料 store 邏輯上的列簇 memstore列簇緩衝區 儲存熱資料 最近瀏覽,更新等操作的資料 region server的工作職責 管理region 和 響應io請求 資料可靠性的體現 1 如果乙個region server掛了 寫日誌 h...
HBase資料儲存
hbase的資料檔案都儲存在hdfs上,格式主要有兩種 hfile hbase中keyvalue資料的儲存格式,hfile是hadoop的二進位制檔案,實際上storefile就是對hfile做了輕量級的包裝,即storefile底層就是hfile hlog file hbase中wal write...