HBase學習筆記(一) 《HBase簡介》

2021-07-05 03:31:08 字數 1457 閱讀 9865

hbase簡介

1、hbase表的結構

hbase以表(table)的形式儲存資料

row key 行鍵

與nosql資料庫們一樣,row key是用來檢索記錄的主鍵。

row key行鍵 (row key)可以是任意字串(最大長度是 64kb,實際應用中長度一般為 10-100bytes),在hbase內部,row key儲存為位元組陣列。

儲存時,資料按照row key的字典序(byte order)排序儲存。

設計key時,要充分排序儲存這個特性,將經常一起讀取的行儲存放到一起。(位置相關性)。

行的一次讀寫是原子操作 (不論一次讀寫多少列)。這個設計決策能夠使使用者很容易的理解程式在對同乙個行進行併發更新操作時的行為。

hbase不支援條件查詢和order by等查詢,

讀取hbase table中的記錄,只有三種方式:

1、通過單個row key訪問

;2、通過row key的範圍掃瞄

;3、全表掃瞄;

因此row key需要根據業務來設計以利用其儲存排序特性提高效能。

column family 列族

hbase表中的每個列,都歸屬與某個列族,這不僅有助於構建資料的語義邊界或者區域性邊界,還有助於給它們設定某些特性。列族需要在表建立時就定義好,並且不能修改得太頻繁,數量也不能太多,列族數量一般不超過幾十。

column 列

最基本的

單位是列。列名都以列族作為字首。例如

courses:history , courses:math 都屬於 courses

這個列族。

cell 單元

hbase中通過row和columns確定的唯一存貯單元稱為ce

ll。cell中的資料是沒有型別的,全部是位元組碼形式存貯。

timestamp 時間戳

每個cell都儲存著同乙份資料的多個版本。版本通過時間戳來索引。時間戳的型別是 64位整型。時間戳可以由hbase(在資料寫入時自動 )賦值,此時時間戳是精確到

毫秒的當前系統時間。時間戳也可以由客戶顯式賦值。如果應用程式要避免資料版本衝突,就必須自己生成具有唯一性的時間戳。每個 cell中,不同版本的資料按照時間倒序排序,即最新的資料排在最前面。

為了避免資料存在過多版本造成的的管理 (包括存貯和索引)負擔,hbase提供了兩種資料版本**方式。一是儲存資料的最後n個版本,二是儲存最近一段時間內的版本(比如最近七天)。使用者可以針對每個列族進行設定。

Hbase 學習筆記 Hbase 概覽

hbase構建在 hdfs 之上,hbase內部管理的檔案全部儲存在hdfs 中 行鍵,table的主鍵,table中的記錄按照row key排序。型別為byte array 列簇,table在水平方向有乙個或者多個column family組成,乙個column family中可以由任意多個col...

HBase學習筆記 hbase集群結構

hbase基本元件說明 client 包含訪問hbase的介面,並維護cache來加快對hbase的訪問,比如region的位置資訊。hmaster 是hbase集群的主節點,可以配置多個,用來實現ha 為regionserver分配region 負責regionserver的負載均衡 發現失效的r...

Hbase學習筆記

1.table中行是按照row key的字典序排列的 2.在行的方向上分隔為多個region 3.hregion是hbase 中分布式儲存和負載均衡的最小單位,這表示不同的region可以分布在不同的regionserver上 當乙個region足夠大時,現在是256m 就會split,乙個regi...