HBase的命令行工具,最簡單的接口,適合HBase管理使用,可以使用shell命令來查詢HBase中數據的詳細情況。安裝完HBase之后,啟動hadoop集群(利用hdfs存儲),啟動zookeeper,使用start-hbase.sh命令開啟hbase服務,最后在shell中執行hbase shell就可以進入命令行界面
Habse shell的help對語法的介紹很全,hbase shell 的操作分為 10類,j本文只介紹前4類常用的,分別是:gerneral,ddl,namespace,dml
1. Gerneral
status:查詢當前服務器狀態。
Version:查看當前版本
Whoami:查詢當前hbase用戶
Table_help:表的引用,通過獲取一張表的引用來對這張表進行添加刪除數據等等操作,現在不推薦使用
2. DDL
Create:創建一個表
###創建一個表名為qianfeng,cf為列族
create 'qianfeng','cf'
list:列出HBase的所有表
· disable:禁用一張表
· ##禁用表‘qianfeng’
· disable ‘qianfeng’
· is_disabled:表是否被禁用
· ##驗證表‘qianfeng’是否被禁用
· is_disabled ‘qianfeng’
·
· enable: 啟用一張表
· ##啟用表‘qianfeng’
· enable ‘qianfeng’
· is_enabled:表是否被啟用
· ##驗證表‘qianfeng’是否被啟用
· is_enabled ‘qianfeng’
·
· describe:查看表的描述
· ##查看‘qianfeng’表的描述信息
· describe ‘qianfeng’
·
· alter:修改表的結構
· ##給表‘qianfeng’加入一個列族‘cf1’
· alter ‘qianfeng’,’cf1’
·
· exists:驗證表是否存在
· ##驗證表‘qianfeng’是否存在
· exists ‘qianfeng’
·
· drop:刪除表,表需先禁用,然后才能刪除
· ##刪除表‘qianfeng’
· disable ‘qianfeng’
· drop ‘qianfeng’
·
· disable_all:禁用多個表
drop_all:刪除多個表,表需先禁用,然后才能刪除
3. Namespace
create_namespace:創建命名空間,相當于關系型數據庫里創建一個數據庫
##創建一個命名空間名為‘qf’,并添加屬性
create_namespace ‘qf’, {'PROPERTY_NAME'=>'PROPERTY_VALUE'}
alter_namespace:修改,添加,刪除命名空間的屬性
##設置命名空間qf的屬性
alter_namespace 'qf', {METHOD => 'set', 'PROPERTY_NAME' => 'PROPERTY_VALUE'}
##刪除命名空間qf的屬性
alter_namespace 'qf', {METHOD => 'unset', NAME=>'PROPERTY_NAME'}
describe_namespace:獲取命名空間的描述
##獲取命名空間‘qf’的描述信息
describe_namespace ‘qf’
drop_namespace:刪除命名空間
##刪除命名空間‘qf’
drop_namespace ‘qf’
list_namespace:查看所有命名空間
list_namespace_tables:查看命名空間下的所有表
##查看命名空間‘ns1’下的所有表
list_namespace_tables ‘ns1’
4. DML
先在命名空間‘qianfeng’(如果沒有這個命名空間要先創建此命名空間)下創建一張表test,列族為‘cf’作為測試用
create ‘qianfeng:test’,’cf’
put:添加cell(數據)
# #向命名空間qianfeng下表test的rowkey為r1的列族下添加數據
put 'qianfeng:test','r1','cf:uname','zhangsan'
scan:掃描全表
scan ‘qianfeng:test’
get:得到某一列或cell的數據。
##向命名空間qianfeng下表test的rowkey為r1的列族下添加數據
put 'qianfeng:test','r1','cf:age','23'
##獲取列族cf下rowkey為r1的所有數據
get ‘qianfeng:test’,’r1’
##獲取列族cf下rowkey為r1,列名為uname的數據(獲取一個cell)
get 'qianfeng:test','r1','cf:uname'
truncate:清空表,不用disable (只是清空數據)
##清空表‘qianfeng:test’
truncate ‘qianfeng:test’
查看‘qianfeng’下所有的表
以上為hbase shell腳本的基礎操作,都應該熟練掌握。在掌握hbase shell腳本的基礎上學習hbase 的java api,會顯得事半功倍。