赞
踩
HBase 为用户提供了一个非常方便的使用方式,我们称之为"HBase Shell"。
HBase Shell提供了大多数的HBase命令,通过HBase Shell用户可以方便地创建、删除及修改表,还可以向表中添加数据、列出表中的相关信息等。
备注:写错HBase Shell命令时用键盘上的"Ctrl+Backspace"进行删除,"Backspace" 不起作用,另外结尾不能有任何符号。
在启动HBase之后,用户可以通过下面的命令进入HBase Shell之中,命令如下图所示:
- [root@liaozhongmin5 local]# hbase shell
- HBase Shell; enter 'help<RETURN>' for list of supported commands.
- Type "exit<RETURN>" to leave the HBase Shell
- Version 0.94.7, r1471806, Wed Apr 24 18:44:36 PDT 2013
-
- hbase(main):001:0>
具体的HBase Shell命令如下表所示:
1.查看服务器状态
- hbase(main):028:0> status
- 1 servers, 0 dead, 6.0000 average load
-
- hbase(main):029:0>
- hbase(main):029:0> version
- 0.94.7, r1471806, Wed Apr 24 18:44:36 PDT 2013
-
- hbase(main):030:0>
1.create 命令
创建一个具有三个列族"member_id"和"address"即"info"的表"member",其中表名、行和列都要用单引号括起来,并以逗号隔开。
- hbase(main):025:0> create 'member','member_id','address','info'
- 0 row(s) in 1.1320 seconds
-
- hbase(main):026:0>
注:语句最后不能有分号,加入不小心多写了个分号,则可以使用qui命令退出错误控制台,如下:
- hbase(main):030:0> list;
- hbase(main):031:0*
- hbase(main):032:0* qui
- TABLE
- member
- membermember_id
- scores
- tb_myHbase
- users
- 5 row(s) in 0.1300 seconds
-
- NameError: undefined local variable or method `qui' for #<Object:0x1046270>
- hbase(main):033:0>
查看当前HBase中具有哪些表
- hbase(main):026:0> list
- TABLE
- member
- scores
- tb_myHbase
- users
- 4 row(s) in 0.0520 seconds
-
- hbase(main):027:0>
3.describe 命令
查看表的描述信息。
- hbase(main):028:0> describe 'member'
- DESCRIPTION ENABLED
- 'member', {NAME => 'address', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'NONE', REPLICATION_SC true
- OPE => '0', VERSIONS => '3', COMPRESSION => 'NONE', MIN_VERSIONS => '0', TTL => '2147483647', KEEP
- _DELETED_CELLS => 'false', BLOCKSIZE => '65536', IN_MEMORY => 'false', ENCODE_ON_DISK => 'true', B
- LOCKCACHE => 'true'}, {NAME => 'info', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'NONE', REPLI
- CATION_SCOPE => '0', VERSIONS => '3', COMPRESSION => 'NONE', MIN_VERSIONS => '0', TTL => '21474836
- 47', KEEP_DELETED_CELLS => 'false', BLOCKSIZE => '65536', IN_MEMORY => 'false', ENCODE_ON_DISK =>
- 'true', BLOCKCACHE => 'true'}, {NAME => 'member_id', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER =>
- 'NONE', REPLICATION_SCOPE => '0', VERSIONS => '3', COMPRESSION => 'NONE', MIN_VERSIONS => '0', TT
- L => '2147483647', KEEP_DELETED_CELLS => 'false', BLOCKSIZE => '65536', IN_MEMORY => 'false', ENCO
- DE_ON_DISK => 'true', BLOCKCACHE => 'true'}
- 1 row(s) in 0.0320 seconds
-
- hbase(main):029:0>
我们之前建了3个列族,如果觉得member_id这个列族是多余的,要将其删除。
alter 'member','delete'=>'member_id'
会出现如下错误:
ERROR: org.apache.hadoop.hbase.TableNotDisabledException: org.apache.hadoop.hbase.TableNotDisabledException: member
解决方案:先disable这张表
- hbase(main):004:0> disable 'member'
- 0 row(s) in 2.0960 seconds
-
- hbase(main):005:0>
删除刚才的列族
alter 'member','delete'=>'member_id'
查看表情况
- hbase(main):017:0> describe 'member'
- DESCRIPTION ENABLED
- 'member', {NAME => 'address', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'NONE', REPLICATION_SC false
- OPE => '0', VERSIONS => '3', COMPRESSION => 'NONE', MIN_VERSIONS => '0', TTL => '2147483647', KEEP
- _DELETED_CELLS => 'false', BLOCKSIZE => '65536', IN_MEMORY => 'false', ENCODE_ON_DISK => 'true', B
- LOCKCACHE => 'true'}, {NAME => 'info', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'NONE', REPLI
- CATION_SCOPE => '0', VERSIONS => '3', COMPRESSION => 'NONE', MIN_VERSIONS => '0', TTL => '21474836
- 47', KEEP_DELETED_CELLS => 'false', BLOCKSIZE => '65536', IN_MEMORY => 'false', ENCODE_ON_DISK =>
- 'true', BLOCKCACHE => 'true'}
- 1 row(s) in 0.0490 seconds
我们可以发现member_id字段已经被删除了。
启用表
- hbase(main):021:0> enable 'member'
- 0 row(s) in 2.0860 seconds
先disable表,再drop删除表,然后用list检查
- hbase(main):022:0> disable 'member'
- 0 row(s) in 2.1140 seconds
-
- hbase(main):023:0> drop 'member'
- 0 row(s) in 1.1670 seconds
-
- hbase(main):024:0> list
- TABLE
- scores
- tb_myHbase
- users
- 3 row(s) in 0.0250 seconds
-
- hbase(main):025:0>
- hbase(main):026:0> exists 'member'
- Table member does not exist
- 0 row(s) in 0.0740 seconds
-
- hbase(main):027:0>
- hbase(main):028:0> is_enable 'users'
- NoMethodError: undefined method `is_enable' for #<Object:0x735f45>
- hbase(main):029:0> is_enabled 'users'
- true
- 0 row(s) in 0.0060 seconds
- hbase(main):030:0> disable 'users'
- 0 row(s) in 2.0880 seconds
- hbase(main):031:0> is_enabled 'users'
- false
- 0 row(s) in 0.0040 seconds
- hbase(main):032:0>
注:另外还有一个命令与他对应即判断是否disable:is_disabled '表名'
1.插入数据
- put 'member','scutshuxue','info:age','24'
- put 'member','scutshuxue','info:birthday','1987-06-17
- put 'member','scutshuxue','info:company','alibaba'
- put 'member','scutshuxue','address:contry','china'
- put 'member','scutshuxue','address:province','zhejiang'
- put 'member','scutshuxue','address:city','hangzhou'
- put 'member','xiaofeng','info:birthday','1987-4-17'
- put 'member','xiaofeng','info:favorite','movie'
- put 'member','xiaofeng','info:company','alibaba'
- put 'member','xiaofeng','address:contry','china'
- put 'member','xiaofeng','address:province','guangdong'
- put 'member','xiaofeng','address:city','jieyang'
- put 'member','xiaofeng','address:town','xianqiao'
注:插入语句后面一定不要有空格。
2.获取一条数据
- hbase(main):012:0> get 'member','xiaofeng'
- COLUMN CELL
- address:city timestamp=1423056496524, value=jieyang
- address:contry timestamp=1423056496475, value=china
- address:province timestamp=1423056496496, value=guangdong
- address:town timestamp=1423056499535, value=xianqiao
- info:birthday timestamp=1423056496348, value=1987-4-17
- info:company timestamp=1423056496447, value=alibaba
- info:favorite timestamp=1423056496386, value=movie
- 7 row(s) in 0.0780 seconds
-
- hbase(main):013:0>
- hbase(main):013:0> get 'member','xiaofeng','info'
- COLUMN CELL
- info:birthday timestamp=1423056496348, value=1987-4-17
- info:company timestamp=1423056496447, value=alibaba
- info:favorite timestamp=1423056496386, value=movie
- 3 row(s) in 0.0160 seconds
-
- hbase(main):014:0>
- hbase(main):015:0> get 'member','xiaofeng','info:company'
- COLUMN CELL
- info:company timestamp=1423056496447, value=alibaba
- 1 row(s) in 0.0130 seconds
-
- hbase(main):016:0>
把xiaofeng的年龄改为25岁
- hbase(main):001:0> get 'member','xiaofeng','info:age'
- COLUMN CELL
- info:age timestamp=1423057077614, value=23
- 1 row(s) in 0.7080 seconds
-
- hbase(main):002:0> put 'member','xiaofeng','info:age','25'
- 0 row(s) in 0.0180 seconds
-
- hbase(main):003:0> get 'member','xiaofeng','info:age'
- COLUMN CELL
- info:age timestamp=1423057248381, value=25
- 1 row(s) in 0.0110 seconds
-
- hbase(main):004:0>
- hbase(main):007:0> get 'member','xiaofeng',{column=>'info:age',timestamp=>1423057248381}
- NameError: undefined local variable or method `column' for #<Object:0x1046270>
- hbase(main):008:0> get 'member','xiaofeng',{COLUMN=>'info:age',TIMESTAMP=>1423057248381}
- COLUMN CELL
- info:age timestamp=1423057248381, value=25
- 1 row(s) in 0.0070 seconds
注:要注意大小写,另外TIMESTAMP后面的时间戳不用单引号。
7.根据版本号获取记录
- hbase(main):025:0> get 'member','xiaofeng',{COLUMN=>'info:company',VERSION=>3}
- COLUMN CELL
- info:company timestamp=1423056496447, value=alibaba
- 1 row(s) in 0.0100 seconds
-
- hbase(main):026:0>
8.全表扫描
- hbase(main):009:0> scan 'member'
- ROW COLUMN+CELL
- lavimer column=address:city, timestamp=1423056054519, value=ganzhou
- lavimer column=info:name, timestamp=1423056214559, value=liaozhongmin
- scutshuxue column=address:city, timestamp=1423056496301, value=hangzhou
- scutshuxue column=address:contry, timestamp=1423056399271, value=china
- scutshuxue column=address:province, timestamp=1423056496250, value=zhejiang
- scutshuxue column=info:age, timestamp=1423056337733, value=24
- scutshuxue column=info:birthday, timestamp=1423056367576, value=1987-06-17
- scutshuxue column=info:company, timestamp=1423056370340, value=alibaba
- xiaofeng column=address:city, timestamp=1423056496524, value=jieyang
- xiaofeng column=address:contry, timestamp=1423056496475, value=china
- xiaofeng column=address:province, timestamp=1423056496496, value=guangdong
- xiaofeng column=address:town, timestamp=1423056499535, value=xianqiao
- xiaofeng column=info:age, timestamp=1423057248381, value=25
- xiaofeng column=info:birthday, timestamp=1423056496348, value=1987-4-17
- xiaofeng column=info:company, timestamp=1423056496447, value=alibaba
- xiaofeng column=info:favorite, timestamp=1423056496386, value=movie
- 3 row(s) in 0.1090 seconds
-
- hbase(main):010:0>
删除xiaofeng年龄这一列。
- hbase(main):010:0> delete 'member','xiaofeng','info:age'
- 0 row(s) in 0.0060 seconds
-
- hbase(main):011:0> get 'member','xiaofeng','info:age'
- COLUMN CELL
- 0 row(s) in 0.0330 seconds
-
- hbase(main):012:0> get 'member','xiaofeng','info'
- COLUMN CELL
- info:birthday timestamp=1423056496348, value=1987-4-17
- info:company timestamp=1423056496447, value=alibaba
- info:favorite timestamp=1423056496386, value=movie
- 3 row(s) in 0.0470 seconds
-
- hbase(main):013:0>
10.删除整行
- hbase(main):013:0> deleteall 'member','scutshuxue'
- 0 row(s) in 0.0080 seconds
-
- hbase(main):014:0> scan 'member'
- ROW COLUMN+CELL
- lavimer column=address:city, timestamp=1423056054519, value=ganzhou
- lavimer column=info:name, timestamp=1423056214559, value=liaozhongmin
- xiaofeng column=address:city, timestamp=1423056496524, value=jieyang
- xiaofeng column=address:contry, timestamp=1423056496475, value=china
- xiaofeng column=address:province, timestamp=1423056496496, value=guangdong
- xiaofeng column=address:town, timestamp=1423056499535, value=xianqiao
- xiaofeng column=info:birthday, timestamp=1423056496348, value=1987-4-17
- xiaofeng column=info:company, timestamp=1423056496447, value=alibaba
- xiaofeng column=info:favorite, timestamp=1423056496386, value=movie
- 2 row(s) in 0.0430 seconds
-
- hbase(main):015:0>
- hbase(main):015:0> count 'member'
- 2 row(s) in 0.2170 seconds
-
- hbase(main):016:0>
- hbase(main):018:0> incr 'member','xiaofeng','info:age'
- COUNTER VALUE = 1
-
- hbase(main):019:0> get 'member','xiaofeng','info:age'
- COLUMN CELL
- info:age timestamp=1423058331353, value=\x00\x00\x00\x00\x00\x00\x00\x01
- 1 row(s) in 0.0100 seconds
-
- hbase(main):021:0> incr 'member','xiaofeng','info:age'
- COUNTER VALUE = 2
-
- hbase(main):022:0>
- hbase(main):022:0> get_counter 'member','xiaofeng','info:age'
- COUNTER VALUE = 2
-
- hbase(main):023:0>
- hbase(main):026:0> truncate 'member'
- Truncating 'member' table (it may take a while):
- - Disabling table...
- - Dropping table...
- - Creating table...
- 0 row(s) in 5.5960 seconds
-
- hbase(main):027:0> scan 'member'
- ROW COLUMN+CELL
- 0 row(s) in 0.0150 seconds
-
- hbase(main):028:0>
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。