(二)Hbase基本操作
阿新 • • 發佈:2018-12-18
幫助
- help: 列出所有命令,並且把命令分組展示
- help “create”: create 命令教學使用
通用命令
- status: 檢視叢集當前狀態
- version:檢視hbase的版本資訊
- whoami:檢視當前使用者資訊
名稱空間
- hbase中的名稱空間用來分放表,同樣的表名放到不同的名稱空間就可以。
- list_namespace:列出所有名稱空間
- list_namespace_tables 'hbase' : 列出名稱空間‘hbase’中的所有表
- create_namespace 'test_ns':建立名稱空間 ‘test_ns’
- drop_namespace 'test_ns':刪除名稱空間‘test_ns’,注意,‘test_ns’名稱空間中不能有表
- hbase本身就具備的名稱空間有兩個:default(預設名稱空間),hbase(hdbase自己使用,裡面儲存著很多重要資訊)
DDL命令
針對表的操作,不指定名稱空間,則預設在default名稱空間下。
- list:列出所有的表
- create:建立表(若列族不指定version,則預設為1)
create 'namespace:tablename', {NAME => 'familyName', VERSIONS => 5}
create 't1', {NAME => 'f1'}, {NAME => 'f2'}, {NAME => 'f3'}
create 't1', 'f1', 'f2', 'f3'
- disable:禁用表
- disable_all:禁用所有表
- enable:啟用表
- enable_all:啟用所有表
- drop:刪除表 - 需要先禁用表再刪除表
- exists:判斷表是否存在
DML命令
- put:向表中存入資料
put 'ns1:t1', 'r1', 'c1', 'value'
put 't1', 'r1', 'c1', 'value'
put 't1', 'r1', 'c1', 'value', ts1
put 't1', 'r1', 'f1:c1','value' :若列族f1沒有列c1,則會自動新增該列,並儲存資料
- get - 從表中獲取 某一行 或 某一個單元格的值
get 'ns1:t1', 'r1'
get 't1', 'r1'
get 't1', 'r1', {COLUMN => 'c1'}
get 't1', 'r1', {COLUMN => ['c1', 'c2', 'c3']}
- scan - 掃描表
scan 'ns1:t1'
scan 't1'
scan 't1',{RAW=>true,VESIONS=>5} #RAW=>true返回所有資料 VERISONS=>5返回最近的5個版本
- delete -- 刪除指定單元格的資料
delete 'ns1:t1', 'r1', 'c1', ts1
delete 't1', 'r1', 'c1', ts1
- truncate -- 摧毀並重建表 等價於 刪除表中所有資料的操作 但是效率比 deleteall效率高