離線資料系統之HBase基礎

2021-09-25 01:14:11 字數 3645 閱讀 4476

hbase是乙個高可靠性、高效能、面向列、可伸縮的分布式儲存系統,利用hbase技術可在廉價pc server上搭建起大規模結構化儲存集群。hbase的目標是儲存並處理大型的資料,更具體來說是僅需使用普通的硬體配置,就能夠處理由成千上萬的行和列所組成的大型資料。

hbase是google bigtable的開源實現,但是也有很多不同之處。比如:google bigtable利用gfs作為其檔案儲存系統,hbase利用hadoop hdfs作為其檔案儲存系統;google執行mapreduce來處理bigtable中的海量資料,hbase同樣利用hadoop mapreduce來處理hbase中的海量資料;google bigtable利用chubby作為協同服務,hbase利用zookeeper作為對應

1、傳統資料庫遇到的問題:

2、hbase優勢:

參考:

與nosql資料庫們一樣,row key是用來檢索記錄的主鍵。訪問hbase table中的行,只有三種方式:

row key行鍵 (row key)可以是任意字串(最大長度 是 64kb,實際應用中長度一般為 10-100bytes),在hbase內部,row key儲存為位元組陣列。儲存時,資料按照row key的字典序(byte order)排序儲存。設計key時,要充分排序儲存這個特性,將經常一起讀取的行儲存放到一起。(位置相關性)

hbase表中的每個列,都歸屬於某個列族。列族是表的schema的一部 分(而列不是),必須在使用表之前定義。列名都以列族作為字首。例如:courses:history,courses:math都屬於courses 這個列族

hbase表中的每個列都歸屬於某個列族,列族必須作為表模式(schema)定義的一部分預先給出。如 create 『test』, 『course』;

列名以列族作為字首,每個「列族」都可以有多個列成員(column);如course:math, course:english, 新的列族成員(列)可以隨後按需、動態加入;

許可權控制、儲存以及調優都是在列族層面進行的;

hbase把同一列族裡面的資料儲存在同一目錄下,由幾個檔案儲存。

由 唯一確定的單元。cell中 的資料是沒有型別的,全部是位元組碼(位元組陣列)形式存貯。

關鍵字:無型別、位元組碼

hbase 中通過rowkey和columns確定的為乙個存貯單元稱為cell。每個 cell都儲存 著同乙份資料的多個版本。版本通過時間戳來索引。時間戳的型別是 64位整型。時間戳可以由hbase(在資料寫入時自動 )賦值,此時時間戳是精確到毫秒 的當前系統時間。時間戳也可以由客戶顯式賦值。如果應用程式要避免資料版 本衝突,就必須自己生成具有唯一性的時間戳。每個 cell中,不同版本的資料按照時間倒序排序,即最新的資料排在最前面。

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

名稱

命令表示式

建立表

create '表名', '列族名1','列族名2','列族名n'

檢視所有表

list

描述表

describe  『表名』

判斷表存在

exists  '表名'

判斷是否禁用啟用表

is_enabled '表名'

is_disabled 『表名』

新增記錄

put  『表名』, 『rowkey』, 『列族 : 列『  ,  '值'

檢視記錄rowkey下的所有資料

get  '表名' , 'rowkey'

檢視表中的記錄總數

count  '表名'

獲取某個列族

get '表名','rowkey','列族'

獲取某個列族的某個列

get '表名','rowkey','列族:列』

或者get 『表名』 ,『行名』 , 『列族:列:tostring'

刪除記錄

delete  『表名』 ,『行名』 , 『列族:列'

刪除整行

deleteall '表名','rowkey'

刪除一張表

先要遮蔽該錶,才能對該錶進行刪除

第一步 disable 『表名』 ,第二步  drop '表名'

清空表

truncate '表名'

檢視所有記錄

scan "表名"

檢視某個表某個列中所有資料

scan "表名" ,

更新記錄

就是重寫一遍,進行覆蓋,hbase沒有修改,都是追加

操作列族:alter 'user', name => 'f2'

alter 'user', 'delete' => 'f2'

hmaster:

管理hregionserver

做增刪改查表的節點

管理hregionserver中的表分配

hregionserver列表:表的增刪改查資料和hdfs互動,訪問資料。

參考:

HBase基礎 HBase的資料模型

命名空間,類似於關係型資料庫的 databbase 概念,每個命名空間下有多個表。hbase 有兩個自帶的命名空間,分別是 hbase 和 default,hbase 中存放的是 hbase 內建的表,default 表是使用者預設使用的命名空間。類似於關係型資料庫的表概念。不同的是,hbase 定...

大資料HBase系列之HBase基本操作

hbase version hbase zkcli hbase shell 2.1 建立表 語法 create 表名 列族名 create student info 2.2 顯示所有表 語法 list 或 list 表名 list student 2.3 顯示表描述 語法 describe 表名 d...

hbase快速入門之 系統架構

使用hbase 的rpc 機制與hmaster 和hregionserver 進行通訊,對於管理類操作,client 與hmaster 進行rpc 對於資料讀寫類操作,client 與hregionserver 進行rpc zookeeper zookeeper quorum 中除了儲存了 root...