這篇文章主要介紹了HBase基礎知識點有哪些,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
成都創(chuàng)新互聯(lián)是一家專業(yè)提供巨野企業(yè)網(wǎng)站建設,專注與做網(wǎng)站、網(wǎng)站制作、H5響應式網(wǎng)站、小程序制作等業(yè)務。10年已為巨野眾多企業(yè)、政府機構等服務。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站設計公司優(yōu)惠進行中。
1. 基本特性
(1) Hbase基于HDFS(故Hbase和DFS有關,和Yarn無關,如果單純的操作Hbase,只啟動dfs-start.sh即可);
(2) Hbase支持簡單查詢,不支持join等復雜查詢,不支持復雜事物(支持行級事物,即行原子性操作,不論有多少列,一次性查出);
(3) Hbase支持數(shù)據(jù)類型:byte[](這也就是我們通過hbase shell看到表里存的內容我們不能直接看懂的原因);
(4) 與Hadoop一樣,Hbase目標主要依靠橫向擴展,通過不斷增加廉價的商用服務器,來增加計算和存儲能力(即只要擴Datanode和Regionserver即可)。
2. 關于表(Table)
(1) 大:一個表可以有上億行,百萬列;
(2) 面向列:面向列(族)的存儲和權限控制,列(族)獨立檢索;
(3) 稀疏:對于空(null)列,不占空間。
3. 關于行鍵(Rowkey)
(1) Rowkey是檢索主鍵,查詢行時只有三種方式:Get 單個Rowkey;通過Rowkey所在的Region;Scan整張表。
(2) Rowkey最大長度64kb,實際應用一般為10-100bytes,在Hbase底層,Rowkey以字節(jié)數(shù)組的形式保存。
(3) Rowkey底層存儲按照字典序存儲,故在使用時要注意Rowkey的設計。
字典序:1,10,100,11,12,13,14,2,20...
所以要保持自然的整形排序,需要用0作左填充。
4. 關于列族(Column Family)
(1) 列族是屬于Schema的一部分,所以建表要聲明(而列不用)。
(2) 實際應用可以基于列族來做權限控制,指定某些應用可以讀、某些可寫等。
5. 關于時間戳(Timestamp)
HBase中通過row和columns確定的為一個存貯單元稱為cell。每個 cell都保存著同一份數(shù)據(jù)的多個版本。版本通過時間戳來索引。時間戳的類型是 64位整型。時間戳可以由hbase(在數(shù)據(jù)寫入時自動 )賦值,此時時間戳是精確到毫秒的當前系統(tǒng)時間。時間戳也可以由客戶顯式賦值。如果應用程序要避免數(shù)據(jù)版本沖突,就必須自己生成具有唯一性的時間戳。每個 cell中,不同版本的數(shù)據(jù)按照時間倒序排序,即最新的數(shù)據(jù)排在最前面。
為了避免數(shù)據(jù)存在過多版本造成的的管理 (包括存貯和索引)負擔,hbase提供了兩種數(shù)據(jù)版本回收方式。一是保存數(shù)據(jù)的最后n個版本,二是保存最近一段時間內的版本(比如最近七天)。用戶可以針對每個列族進行設置。
1.6 行存儲和列存儲的對比
(1) 行存儲:
(2) 列存儲:
感謝你能夠認真閱讀完這篇文章,希望小編分享的“HBase基礎知識點有哪些”這篇文章對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián),關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關知識等著你來學習!