進入hbase shell console
$HBASE_HOME/bin/hbase shell
如果有kerberos認證,需要事先使用相應的keytab進行一下認證(使用kinit命令),認證成功之後再使用hbase shell進入可以使用whoami命令可查看目前使用者 hbase(main)> whoami 表的管理
1)查看有哪些表 hbase(main)> list
2)建立表 # 文法:create <table>, {NAME => <family>, VERSIONS => <VERSIONS>} # 例如:建立表t1,有兩個family name:f1,f2,且版本數均為2 hbase(main)> create 't1' ,{NAME => 'f1' , VERSIONS => 2},{NAME => 'f2' , VERSIONS => 2}
3)刪除表
分兩步:首先disable,然後drop
例如:刪除表t1 hbase(main)> disable 't1' hbase(main)> drop 't1'
4)查看錶的結構 # 文法:describe <table> # 例如:查看錶t1的結構 hbase(main)> describe 't1'
5)修改表結構
修改表結構必須先disable # 文法:alter 't1', {NAME => 'f1'}, {NAME => 'f2', METHOD => 'delete'} # 例如:修改表test1的cf的TTL為180天 hbase(main)> disable 'test1' hbase(main)> alter 'test1' ,{NAME=> 'body' ,TTL=> '15552000' },{NAME=> 'meta' , TTL=> '15552000' } hbase(main)> enable 'test1' 許可權管理
1)分配許可權 # 文法 : grant <user> <permissions> <table> <column family> <column qualifier> 參數後面用逗號分隔 # 許可權用五個字母表示: "RWXCA". # READ('R'), WRITE('W'), EXEC('X'), CREATE('C'), ADMIN('A') # 例如,給使用者‘test'分配對錶t1有讀寫的許可權, hbase(main)> grant 'test' , 'RW' , 't1'
2)查看許可權 # 文法:user_permission <table> # 例如,查看錶t1的許可權列表 hbase(main)> user_permission 't1'
3)收回許可權 # 與分配權限類別似,文法:revoke <user> <table> <column family> <column qualifier> # 例如,收回test使用者在表t1上的許可權 hbase(main)> revoke 'test' , 't1' 表資料的增刪改查
1)添加資料 # 文法:put <table>,<rowkey>,<family:column>,<value>,<timestamp> # 例如:給表t1的添加一行記錄:rowkey是rowkey001,family name:f1,column name:col1,value:value01,timestamp:系統預設 hbase(main)> put 't1' , 'rowkey001' , 'f1:col1' , 'value01' 用法比較單一。
2)查詢資料
a)查詢某行記錄 # 文法:get <table>,<rowkey>,[<family:column>,....] # 例如:查詢表t1,rowkey001中的f1下的col1的值 hbase(main)> get 't1' , 'rowkey001' , 'f1:col1' # 或者: hbase(main)> get 't1' , 'rowkey001' , {COLUMN=> 'f1:col1' } # 查詢表t1,rowke002中的f1下的所有列值 hbase(main)> get 't1' , 'rowkey001'
b)掃描表 # 文法:scan <table>, {COLUMNS => [ <family:column>,.... ], LIMIT => num} # 另外,還可以添加STARTROW、TIMERANGE和FITLER等進階功能 # 例如:掃描表t1的前5條資料 hbase(main)> scan 't1' ,{LIMIT=>5}
c)查詢表中的資料行數 # 文法:count <table>, {INTERVAL => intervalNum, CACHE => cacheNum} # INTERVAL設定多少行顯示一次及對應的rowkey,預設1000;CACHE每次去取的緩衝區大小,預設是10,調整該參數可提高查詢速度 # 例如,查詢表t1中的行數,每100條顯示一次,緩衝區為500 hbase(main)> count 't1' , {INTERVAL => 100, CACHE => 500}
3)刪除資料
a )刪除行中的某個列值