大數據之 Hadoop 的資料庫 HBase 的架構的詳細講解
HBase
大數據之 Hadoop 的資料庫 HBase 的架構的詳細講解
HBase 即 Hadoop DataBase,Hadoop 的資料庫,HBase 是一種 "NoSQL" 資料庫,即不是 RDBMS ,不支持 SQL 作為主要訪問手段。
Hbase 它是基於 hadoop 的一個分散式資料庫,即 HBase 是利用 HDFS作為文件存儲系統
特點
高可靠:因為是基於 Hadoop 的,Hadoop 就具有高可靠,故 HBase 也具有高可靠性。
高性能:高寫高讀性能。
面向列:單獨對列進行各種操作。
海量數據存儲:單表可有上百億行、上百萬的列。也就是對列沒有限制。
實時讀寫
多版本:Timestamp 可以將 cell 中的數據存儲好幾個版本
准實時查詢:查詢上億數據量低延遲 百毫秒級別
擴展性:因為是基於 Hadoop 的,Hadoop 就具有擴展性,故 HBase 也具有擴展性。
HBase 的架構
大數據之 Hadoop 的資料庫 HBase 的架構的詳細講解
Master
它為 Region Server 分配 region,並且負責 Region Server 的負載均衡,如果它發現失效的 Region Server,它會重新分配失效 Region Server 上的 Region,它還管理用戶對錶的增刪改操作。
Region Server
它是用來維護 region,並且處理對 region 的 IO 請求,還負責切分過大的 Region。
Zookeeper
它是為了高可用行,即 HA ,在任何時候,可以保證集群中有且只有一個 Master 處於 active 狀態,其他是 standby 狀態,它還存儲所有 Region的定址入口,並且實時監控 Region Server 的信息,實時通知 Master 存儲 HBase 的 schema 和 table 元數據信息。
Memstore和storefile
region 是由多個 store 組成,而一個 store 對應一個 Column Famliy,store 包括內存中的 memstore 和位於磁碟的 storefile,如果有數據寫入,那麼會先寫入 memstore,當 memstore 中的數據達到設定的閾值時,regionserver 會啟動 flushcache 進程將數據寫入到 storefile,當 storefile 文件數量到了設定的閾值時,系統會進行 minor、major compaction (即大合併和小合併),在合併過程中會進行版本合併和刪除工作,形成更大的 storefile,如果一個 region 的所有 storefile 的大小和數量超過設定的閾值時,會把當前的 region 分割為兩個,並由 master 分配到相應的 regionserver 上,實現負載均衡,如果客戶端要檢索數據,它會先在 memstore 上找,如果找不到就會去 storefile 中找,直到找到。
Region 是 HBase 中分散式存儲和負載均衡的最小單元。最小單元就表示不同 Region 可以分布在不同 Region Server 上面
Minor Compaction
即小合併,將會選取一些小的、相鄰的 storefile,然後合併成更大的StoreFile,在這個過程不會處理 Delete 或者失效的 Cell
Major Compaction
即大合併 這個過程會消耗大量的系統資源。將所有的 StoreFile 合併成一個StoreFile,它會清理三類數據:被刪除的數據,TTL(TIME TO LIVE) 生命周期過期的數據,版本號超過設定版本的數據。
Compaction 就是使用短時間的 IO 消耗以及帶寬消耗換取後續查詢的低延遲
來源| http://t.cn/R8Letkc
小月兒
推薦閱讀:
※《Using HBase for Real-time Access to your Big Data》第二章問題集
※HBaseCon&灣區見聞及感想
※Hbase性能測試工具之YCSB
※怎麼看hadoop的源碼,求大神指教?
TAG:HBase |