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,會顯得事半功倍。