Hbase數據結構和shell操做

Hbase的數據結構
基本要素:命名空間、表、行、列、單元格,region,時間戳。
1.命名空間:NameSpaces的做用
Table:表,全部的表都是命名空間的成員,即表必屬於某個命名空間,若是沒有指定,則在default默認的命名空間中。
RegionServer group:一個命名空間包含了默認的RegionServer Group。
Permission:權限,命名空間可以定義訪問控制列表ACL(Access Control List)。例如,建立表,讀取表,刪除,更新等等操做。
Quota:限額,能夠強制一個命名空間可包含的region的數量。
2.表:概念上能夠理解爲關係型數據庫的表。
3.行:行鍵rowkey是行的惟一標識元素,表中的數據存儲根據行鍵進行排序,數據的訪問也是經過行鍵進行。
4.列:(列族:列名)表中的每一個列,都歸屬於某個列族,列族是表的schema的一部分(列不是),必須在使用表以前定義,列名都以列族做爲前綴;例如info:name,info:age,info:class都屬於info這個列族。
5.單元格: 單元格cell中存放的是不可分割的字節數組,每一個單元格擁有版本信息,插入數據時若沒有設置版本,則爲默認版本。
6.region:region將表水平劃分,是Hbase集羣分佈數據的最小單位,在線的全部區域就構成了表的內容。
7.時間戳:Hbase 中每一個 cell都保存着同一份數據的多個版本,版本經過時間戳來索引,插入數據時能夠設置時間戳的值,若未設置則生成默認時間戳。
Hbase的Shell操做
在任意節點主機上使用hbase shell便可鏈接到已經啓動的Hbase實例:

shell

  1 # hbase shell

hbaseshell001
輸入help能夠顯示幫助文檔內容,status能夠查看Hbase集羣狀態:

  1 > help

hbaseshell002
hbaseshell003
status提供HBase的狀態:

  1 > status

hbaseshell004
version提供正在使用Hbase版本:

  1 > version

hbaseshell005
create用於建立表,建立時必須指定表名和ColumnFamily名稱:

  1 > create 'testtable','infofamily'

hbaseshell006
list用於查看HBase中全部的表:

  1 > list

hbaseshell007
describe命令能夠查看某個表的信息:

  1 > describe 'testtable'

hbaseshell008
alter用於修改一個表,例如添加列族:

  1 > alter 'testtable',NAME=>'basic'

hbaseshell009

使用describe命令查看添加列族後的表信息:
hbaseshell010
使用alter命令刪除列族:

數據庫

  1 > alter 'testtable',NAME=>'basic','METHOD'=>'delete'

hbaseshell011

hbaseshell012
使用disable命令能夠禁用表,在作刪除表或其餘的操做時,須要在表禁用的狀況下才能進行操做,使用enable命令能夠將禁用的表格從新啓用:

數組

  1 > disable 'testtable'


  1 > enable 'testtable'

hbaseshell013
使用drop命令能夠刪除已經禁用的表(必須先disable表,不然會報出錯誤提示):

  1 > disable 'testtable'
  2 > drop 'testtable'

hbaseshell014
hbaseshell015
再建立一個表testtableone:

  1 > create 'testtableone','info'

使用put命令能夠向表中添加數據,put命令格式:

  1 > put '表名','行鍵','列族:列名','VALUE'

  1 > put 'testtableone','row1','info:name','Jack'

hbaseshell016
使用get命令能夠看某行數據信息:

  1 > get 'testtableone','row1'

hbaseshell017
使用scan能夠查看錶中全部行的數據信息:

  1 > scan 'testtableone'

hbaseshell018
delete用於刪除表中的單元格值,delete命令格式:

  1 > delete '表名','行鍵','列族:列名',時間戳

先往表中多插入幾條數據。
注意:此處在插入數據時,先插入的row2行數據Bob,因爲在後續插入數據時,行鍵row2沒有更改,因此Bob數據直接被Lucy替換了。
hbaseshell019
hbaseshell020
刪除Jack的class單元格數據:

  1 > delete 'testtableone','row1','info:class',1566182654321

hbaseshell021
deleteall用於刪除給定行的全部單元格:

  1 > delete '表名','行鍵'

刪除row1行的全部單元格數據:

  1 > deleteall 'testtableone','row1'

hbaseshell022
count用於計數並返回表中的行的數值:

  1 > count 'testtableone'

hbaseshell023 至此經常使用的命令列舉完成。
相關文章
相關標籤/搜索