HBase基礎知識

2022-03-09 02:07:49 字數 1530 閱讀 7933

hbase簡介

hbase架構

client、zookeeper、hmaster(管理許多hregionserver)、hregionserver

hregionserver:多個hregion(乙個或多個hregion負責一張表)、hlog(操作日誌)

hregion:多個store(乙個或多個store乙個列族)

store:mem store(本地快取區,記憶體)、storefile

底層:資料先寫入mem store,當mem store滿了,就flush到磁碟,形成storefile檔案,其中storefile檔案以hfile格式儲存在hdfs上。

原先是乙個hregion負責乙個表,當hregion達到閾值,則會切分為兩個hregion。有可能hregion會分給另乙個hregionserver以防止資料傾斜。

hbase shell

put 'table','rowkey','columnfamily:qualiter','value'
get 'table','rowkey',
hbase資料結構

rowkey

記錄的主鍵,rowkey可以是任意字串,按字典序排序儲存,設計rowkey時,要充分排序儲存這個特性,將經常一起讀取的行儲存到一起。

column family

列族,包含多個列。必須在使用表前定義。

cell

由確定的單元

timestamp

時間戳,版本通過時間戳來索引。

hbase讀寫資料流程

讀資料流程

client連線zk獲取元資料資訊(.meta.表,meta-region-server表),即獲取元資料所在的regionserver在**。

zk返回客戶端查詢元資料所在的regionserver位置。

客戶端請求訪問所在的regionserver

regionserver同意訪問

客戶端傳送讀請求

regionserver返回結果(先記憶體後磁碟)

寫資料流程

客戶端傳送請求給zk,獲取meta表所在regionserver

zk返回meta表所在的regionserver

獲取regionserver的meta表

返回元資料所在的regionserver

向regionserver傳送寫資料請求

寫入hlog,wal

hregion根據hlog寫入mem store

反饋客戶端,寫入成功

flush過程

當memstore資料達到閾值,將資料刷到硬碟,將記憶體中資料刪除,同時刪除hlog中的歷史資料

並將資料儲存到hdfs

資料合併過程

資料塊達到4塊,hmaster觸發合併操作,region將資料塊載入到本地,進行合併

合併資料超過256m,進行拆分,拆分後的region分配給不同regionserver

當hregionserver宕機後,將hlog拆分,分配給不同hregionserver,同時修改.meta.表

HBase基礎知識

hbase的主要客戶端介面是由org.apache.hadoop.hbase.client包中的htable類提供的,通過該類,使用者可以完成向hbase儲存和檢索資料,以及刪除無效資料之類的操作。所有修改資料的操作都保證了行級別的原子性,寫操作中涉及的列的數目不會影響該行資料的原子性,行原子性會同...

HBase基礎知識

hdfs myha01 hbase hbase.cluster.distributed true hbase.zookeeper.quorum hadoop02 2181,hadoop03 2181,hadoop04 2181 htable表 table htabledescriptor列族 col...

HBase基礎知識

hbase官網 學習 hbase是乙個建立在hadoop檔案系統之上的分布式的 面向列的開源資料庫,源於google的一篇 bigtable 乙個結構化資料的分布式儲存系統 hbase是google bigtable的開源實現,它利用hadoop hdfs作為其檔案儲存系統,利用hadoop map...