HBase的命令列操作

2021-08-27 16:01:42 字數 2308 閱讀 5250

hbase的表結構:

如上圖所示,key1,key2,key3是三條記錄的唯一的row key值,column-family1,column-family2,column-family3是三個列族,每個列族下又包括幾列。比如column-family1這個列族下包括兩列,名字是column1和column2,t1:abc,t2:gdxdf是由row key1和column-family1-column1唯一確定的乙個單元cell。這個cell中有兩個資料,abc和gdxdf。兩個值的時間戳不一樣,分別是t1,t2, hbase會返回最新時間的值給請求者。

這些名詞的具體含義如下:

1、row key

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

1.1 通過單個row key訪問

1.2 通過row key的range

1.3 全表掃瞄

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

注意:字典序對int排序的結果是1,10,100,11,12,13,14,15,16,17,18,19,2,20,21,…,9,91,92,93,94,95,96,97,98,99。要保持整形的自然序,行鍵必須用0作左填充。行的一次讀寫是原子操作 (不論一次讀寫多少列)。這個設計決策能夠使使用者很容易的理解程式在對同乙個行進行併發更新操作時的行為。

2、列族 column family

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

訪問控制、磁碟和記憶體的使用統計都是在列族層面進行的。實際應用中,列族上的控制許可權能幫助我們管理不同型別的應用:我們允許一些應用可以新增新的基本資料、一些應用可以讀取基本資料並建立繼承的列族、一些應用則只允許瀏覽資料(甚至可能因為隱私的原因不能瀏覽所有資料)。

3、單元 cell

hbase中通過row和columns確定的為乙個存貯單元稱為cell。由 唯一確定的單元。cell中的資料是沒有型別的,全部是位元組碼形式存貯。

4、時間戳 timestamp

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

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

常用命令:

名稱                                  命令表示式

檢視存在哪些表 list

建立表 create '表名稱', '列名稱1','列名稱2','列名稱n'

新增記錄 put '表名稱', '行名稱', '列名稱:', '值'

檢視記錄 get '表名稱', '行名稱'

檢視表中的記錄總數 count '表名稱'

刪除記錄 delete '表名' ,'行名稱' , '列名稱'

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

第一步 disable '表名稱'

第二步 drop '表名稱'

檢視所有記錄 scan "表名稱"

檢視某個表某個列中所有資料 scan "表名稱" , ['列名稱:']

更新記錄 就是重寫一遍進行覆

02 Hbase的命令列操作

進入家目錄 cd 進入hbase的bin目錄 cd hbase 1.2.6 bin 進入hbase命令列 hbase shellcreate namespace nn t1指表名字,f1指列簇名,注意都要帶單引號,不用分號結束 create t1 f1 建立一張指定namespace的表 creat...

hbase命令列演示

進入hbase命令列 hbase shell 顯示hbase中的表 list 建立user表,包含info data兩個列族 create user info data 或者create user 向user表中插入資訊,row key為rk0001,列族info中新增name列標示符,值為zhan...

HBase常用命令行操作

hbase hbase shell進入 1 建立命名空間 create namespace zy test 2 建立表 create zy test 3 查詢命名空間 list namespace 4 列出表 list 個人在命名空間sgs test內進行操作,如果在預設命名空間操作,如下命令可以不...