Hbase shell常見語法
Hbase shell常見語法
連接到hbase shell
hbase shell位於Hbase目錄下的/bin目錄下,如果沒有配置環境變量,可以使用./bin/hbase shell
顯示hbase sehll的幫助信息
help
注意:表名、行、列都必須用引號引起來
退出hbase shell客戶端
quit
1. hbase-namespace
-
使用
create_namespace
創建命名空間,可以同時指定屬性hbase(main):001:0> create_namespace 'ns1' hbase(main):002:0> create_namespace 'ns1', {'propertyName'=>'propertyValue'}
-
使用
alter_namespace
修改命名空間屬性# 新增命名空間的屬性值 hbase(main):003:0> alter_namespace 'myns', {METHOD => 'set', 'propertyName' => 'propertyValue'} # 刪除命名空間已經存在的屬性值 hbase(main):004:0> alter_namespace 'myns', {METHOD => 'unset', NAME => 'propertyName'}
-
使用
describe_namespace
查看命名空間的描述信息hbase(main):005:0> describe_namespace 'myns'
-
使用
drop_namespace
刪除命名空間注意:這個namespacae必須爲空,如果有表,不能被刪除
hbase(main):006:0> drop_namespace 'myns'
-
使用
list_namespace
列出命名空間# 列出所有的命名空間 hbase(main):007:0> list_namespace # 列出符合規範的命名空間:列出所有以my開頭的命名空間 hbase(main):008:0> list_namespace "my.*"
-
使用
list_namespace_tables
列出命名空間中的表hbase(main):009:0> list_namespace_tables 'myns'
2. hbase-table
用如下的表進行示範,表名爲emp,內容包括3個列簇(列族)(列簇和列族有相同意思,本人習慣稱爲列簇)
rowkey | base_info | extra_info | address_info |
---|---|---|---|
-
使用
create
創建一個表注意:創建表時,如果沒有指定命名空間,則默認創建在default命名空間下
在創建表時同時,必須至少指定一個列簇
hbase(main):010:0> create 'emp', 'base_info'
可以使用變量,指定創建表,在後面,如果使用到這張表,就可以直接使用變量名.去使用表的內容
t.put/t.drop/t.enable
hbase(main):011:0> t = create 'emp', 'base_info'
-
使用
list
列出表的相關信息hbase(main):012:0> list 'emp'
-
使用
describe
查看詳細信息,包括默認的配置hbase(main):013:0> describe 'emp'
-
使用
alter
修改表的相關信息修改列簇的信息
hbase(main):014:0> alter 'emp', NAME => 'base_info', VERSIONS => 5 hbase(main):015:0> describe 'emp' hbase(main):016:0> t.describe
新增列簇
hbase(main):017:0> alter 'emp', 'base_info', {NAME => 'extra_info', IN_MEMORY => true}, {NAME => 'address_info', VERSIONS => 5}
刪除列簇
hbase(main):018:0> alter 'default:emp', NAME => 'base_info', METHOD => 'delete' hbase(main):019:0> alter 'default:emp', 'delete' => 'extra_info'
-
使用
put
插入數據注意:put只能一次插入一個值
第一個是在:emp表中的base_info列簇下的name屬性增加值爲zhangsan
hbase(main):020:0> put 'emp', 'row1', 'base_info:name', 'zhangsan' hbase(main):021:0> put 'emp', 'row2', 'base_info:age', '23' hbase(main):022:0> put 'emp', 'row3', 'base_info:gender', 'male'
-
使用
scan
查看數據注意:scan掃描表中的數據,可以限制範圍
hbase(main):023:0> scan 'emp'
-
使用
get
獲取指定行數據hbase(main):024:0> get 'emp', 'row1'
-
使用
disable
禁用表如果想刪除或者改變其設置,可以使用disable禁用,通過enable重新啓用
hbase(main):025:0> disable 'emp' hbase(main):026:0> enable 'emp'
-
使用
drop
刪除表刪除表之前,一定要先使用disable禁用表
hbase(main):027:0> disable 'emp' hbase(main):028:0> drop 'emp'