深入理解HBase

2021-09-02 08:35:12 字數 3052 閱讀 2812

思考:hbase伺服器內部由那些主要部件構成?

hbase的內部工作原理是什麼?

1.    hbase的工作原理:

首先hbase client端會連線zookeeper qurom(從下面的**也能看出來,例 如:hbase_config.set(「hbase.zookeeper.quorum」,」192.168.50.216″) )。通過zookeeper元件client能獲知哪個server管理-root-region。那麼client就去訪問管理-root-的 server,在meta中記錄了hbase中所有表資訊,(你可以使用 scan 『.meta.』 命令列出你建立的所有表的詳細資訊),從而獲取region分布的資訊。一旦client獲取了這一行的位置資訊,比如這一行屬於哪個 region,client將會快取這個資訊並直接訪問hregionserver。久而久之client快取的資訊漸漸增多,即使不訪問.meta.表 也能知道去訪問哪個hregionserver。hbase中包含兩種基本型別的檔案,一種用於儲存wal的log,另一種用於儲存具體的資料,這些資料 都通過dfs client和分布式的檔案系統hdfs進行互動實現儲存。

2.    client訪問資料過程:

client訪問使用者資料之前需要首先訪問zookeeper,然後訪問-root-表,接著訪問.meta.表,最後才能找到使用者資料的位置去訪問,中間需要多次網路操作,不過client端會做cache快取。

-root-表、.meta都是存放在**??

client訪問hbase上資料的過程並不需要master參與(定址訪問zookeeper和region server,資料讀寫訪問region server),master僅僅維護者table和region的元資料資訊,負載很低。

3.    在hbase上進行mapreduce操作:

4.    hbase系統架構:

hbase client使用hbase的rpc機制與hmaster和hregionserver進行通訊,對於管理類操作,client與hmaster進行rpc;對於資料讀寫類操作,client與hregionserver進行rpc

5.    zookeeper:

zookeeper簡單說就是協調和服務於分布式應用程式的服務。

zookeeper quorum中除了儲存了-root-表的位址和hmaster的位址,hregionserver也會把自己以ephemeral方式註冊到 zookeeper中,使得hmaster可以隨時感知到各個hregionserver的健康狀態。此外,zookeeper也避免了hmaster的 單點問題。

1 保證任何時候,集群中只有乙個master

2存貯所有region的定址入口。

3 實時監控regionserver的狀態,將region server的上線和下線資訊實時通知給master

4 儲存hbase的schema,包括有哪些table,每個table有哪些column family

zookeeper到底為我們幹了什麼?

2.    集群管理:同步:維護活機列表(讓集群所有機器得到實時更新),

組服務:從集群中選擇master。

6.    hmaster:

hmaster沒有單點問題,hbase中可以啟動多個hmaster,通過zookeeper的masterelection機制保證總有乙個master執行,hmaster在功能上主要負責table和region的管理工作:

1. 管理使用者對table的增、刪、改、查操作

2. 管理hregionserver的負載均衡,調整region分布

3. 在region split後,負責新region的分配

4. 在hregionserver停機後,負責失效hregionserver 上的regions遷移

7.    hregionserver:

hregionserver主要負責響應使用者i/o請求,向hdfs檔案系統中讀寫資料,是hbase中最核心的模組。

hregionserver內部管理了一系列hregion物件,每個hregion對應了table中的乙個region,hregion中 由多個hstore組成。每個hstore對應了table中的乙個columnfamily的儲存,可以看出每個column family其實就是乙個集中的儲存單元,因此最好將具備共同io特性的column放在乙個columnfamily中,這樣最高效。

8.    hadoop+hbase+zookeeper三者關係:

1.經過map、reduce運算後產生的結果看上去是被寫入到hbase了,但是其實hbase中hlog和storefile中的檔案在進行flush to disk操作時,這兩個檔案儲存到了hdfs的datanode中,hdfs才是永久儲存。

2.zookeeper跟hadoopcore、hbase有什麼關係呢?zookeeper都提供了哪些服務呢?主要有:管理hadoop集群中 的namenode,hbase中hbasemaster的選舉,servers之間狀態同步等。具體一點,細一點說,單隻hbase中 zookeeper例項負責的工作就有:儲存hbase的schema,實時監控hregionserver,儲存所有region的定址入口,當然還有 最常見的功能就是保證hbase集群中只有乙個master。

小結

hadoop、zookeeper和hbase之間應該按照順序啟動和關閉:啟動hadoop—>啟動zookeeper集群—>啟動hbase—>停止hbase—>停止zookeeper集群—>停止hadoop。

宣告:本文採用  

深入理解hbase

標籤:  

hbase,  

hmaster,  

hregionserver,  

zookeeper

深入理解HBase的系統架構

監控集群中的region server的工作狀態。通過監聽zookeeper對於ephemeral node狀態的通知 管理資料庫 客戶向該region server查詢負責管理自己想要訪問的row key的所在的region的region server的位址。客戶會快取這一資訊以及meta tab...

深入理解C語言 深入理解指標

關於指標,其是c語言的重點,c語言學的好壞,其實就是指標學的好壞。其實指標並不複雜,學習指標,要正確的理解指標。指標也是一種變數,占有記憶體空間,用來儲存記憶體位址 指標就是告訴編譯器,開闢4個位元組的儲存空間 32位系統 無論是幾級指標都是一樣的 p操作記憶體 在指標宣告時,號表示所宣告的變數為指...

mysql 索引深入理解 深入理解MySql的索引

為什麼索引能提高查詢速度 先從 mysql的基本儲存結構說起 mysql的基本儲存結構是頁 記錄都存在頁裡邊 各個資料頁可以組成乙個雙向鍊錶每個資料頁中的記錄又可以組成乙個單向鍊錶 每個資料頁都會為儲存在它裡邊兒的記錄生成乙個頁目錄,在通過主鍵查詢某條記錄的時候可以在頁目錄中使用二分法快速定位到對應...