HBase的命令行工具,最簡(jiǎn)單的接口,適合HBase管理使用掐禁,可以使用shell命令來(lái)查詢(xún)HBase中數(shù)據(jù)的詳細(xì)情況。安裝完HBase之后颅和,啟動(dòng)hadoop集群(利用hdfs存儲(chǔ))傅事,啟動(dòng)zookeeper,使用start-hbase.sh命令開(kāi)啟hbase服務(wù)峡扩,最后在shell中執(zhí)行hbase shell就可以進(jìn)入命令行界面
Habse shell的help對(duì)語(yǔ)法的介紹很全,hbase shell 的操作分為 10類(lèi)享完,j本文只介紹前4類(lèi)常用的,分別是:gerneral,ddl,namespace,dml
1. Gerneral
status:查詢(xún)當(dāng)前服務(wù)器狀態(tài)有额。
Version:查看當(dāng)前版本
Whoami:查詢(xún)當(dāng)前hbase用戶(hù)
Table_help:表的引用般又,通過(guò)獲取一張表的引用來(lái)對(duì)這張表進(jìn)行添加刪除數(shù)據(jù)等等操作,現(xiàn)在不推薦使用
2. DDL
Create:創(chuàng)建一個(gè)表
###創(chuàng)建一個(gè)表名為qianfeng巍佑,cf為列族
create 'qianfeng','cf'
list:列出HBase的所有表
· disable:禁用一張表
· ##禁用表‘qianfeng’
· disable ‘qianfeng’
· is_disabled:表是否被禁用
· ##驗(yàn)證表‘qianfeng’是否被禁用
· is_disabled ‘qianfeng’
·
· enable: 啟用一張表
· ##啟用表‘qianfeng’
· enable ‘qianfeng’
· is_enabled:表是否被啟用
· ##驗(yàn)證表‘qianfeng’是否被啟用
· is_enabled ‘qianfeng’
·
· describe:查看表的描述
· ##查看‘qianfeng’表的描述信息
· describe ‘qianfeng’
·
· alter:修改表的結(jié)構(gòu)
· ##給表‘qianfeng’加入一個(gè)列族‘cf1’
· alter ‘qianfeng’,’cf1’
·
· exists:驗(yàn)證表是否存在
· ##驗(yàn)證表‘qianfeng’是否存在
· exists ‘qianfeng’
·
· drop:刪除表茴迁,表需先禁用,然后才能刪除
· ##刪除表‘qianfeng’
· disable ‘qianfeng’
· drop ‘qianfeng’
·
· disable_all:禁用多個(gè)表
drop_all:刪除多個(gè)表萤衰,表需先禁用堕义,然后才能刪除
3. Namespace
create_namespace:創(chuàng)建命名空間,相當(dāng)于關(guān)系型數(shù)據(jù)庫(kù)里創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)
##創(chuàng)建一個(gè)命名空間名為‘qf’,并添加屬性
create_namespace ‘qf’, {'PROPERTY_NAME'=>'PROPERTY_VALUE'}
alter_namespace:修改,添加倦卖,刪除命名空間的屬性
##設(shè)置命名空間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’(如果沒(méi)有這個(gè)命名空間要先創(chuàng)建此命名空間)下創(chuàng)建一張表test,列族為‘cf’作為測(cè)試用
create ‘qianfeng:test’,’cf’
put:添加cell(數(shù)據(jù))
# #向命名空間qianfeng下表test的rowkey為r1的列族下添加數(shù)據(jù)
put 'qianfeng:test','r1','cf:uname','zhangsan'
scan:掃描全表
scan ‘qianfeng:test’
get:得到某一列或cell的數(shù)據(jù)洒擦。
##向命名空間qianfeng下表test的rowkey為r1的列族下添加數(shù)據(jù)
put 'qianfeng:test','r1','cf:age','23'
##獲取列族cf下rowkey為r1的所有數(shù)據(jù)
get ‘qianfeng:test’,’r1’
##獲取列族cf下rowkey為r1,列名為uname的數(shù)據(jù)(獲取一個(gè)cell)
get 'qianfeng:test','r1','cf:uname'
truncate:清空表,不用disable (只是清空數(shù)據(jù))
##清空表‘qianfeng:test’
truncate ‘qianfeng:test’
查看‘qianfeng’下所有的表
以上為hbase shell腳本的基礎(chǔ)操作,都應(yīng)該熟練掌握垒棋。在掌握hbase shell腳本的基礎(chǔ)上學(xué)習(xí)hbase 的java api,會(huì)顯得事半功倍。