hbase shell命令

环境:

hadoop2.7.3

hbase1.x,如果还没安装hbase,请点击这里安装hbase

 

hbase shell常用命令

启动hadoop及hbase

start-all.sh
start-hbase.sh

进入hbase shell命令

hbase shell

查看所有表

hbase(main):003:0> list
TABLE
0 row(s) in 0.0500 seconds

=> []

最开始hbase还没有任何表

 

建表

语法: create '表名','列族1','列族2'

hbase(main):004:0> create 'Student','baseInfo','schoolInfo'
0 row(s) in 1.3250 seconds

=> Hbase::Table - Student

查看表信息

语法:desc '表名'

hbase(main):005:0> describe 'Student'
Table Student is ENABLED
Student
COLUMN FAMILIES DESCRIPTION
{NAME => 'baseInfo', BLOOMFILTER => 'ROW', VERSIONS => '1', IN_MEMORY => 'false'
, KEEP_DELETED_CELLS => 'FALSE', DATA_BLOCK_ENCODING => 'NONE', TTL => 'FOREVER'
, COMPRESSION => 'NONE', MIN_VERSIONS => '0', BLOCKCACHE => 'true', BLOCKSIZE =>
 '65536', REPLICATION_SCOPE => '0'}
{NAME => 'schoolInfo', BLOOMFILTER => 'ROW', VERSIONS => '1', IN_MEMORY => 'fals
e', KEEP_DELETED_CELLS => 'FALSE', DATA_BLOCK_ENCODING => 'NONE', TTL => 'FOREVE
R', COMPRESSION => 'NONE', MIN_VERSIONS => '0', BLOCKCACHE => 'true', BLOCKSIZE
=> '65536', REPLICATION_SCOPE => '0'}
2 row(s) in 0.0890 seconds

禁用/启用表

查看表是否启用
hbase(main):006:0> is_enabled 'Student'
true
0 row(s) in 0.0200 seconds

禁用表
hbase(main):007:0> disable 'Student'
0 row(s) in 2.2660 seconds
hbase(main):008:0> is_enabled 'Student'
false
0 row(s) in 0.0270 seconds

启用表
hbase(main):009:0> enable 'Student'
0 row(s) in 1.2520 seconds
hbase(main):010:0> is_enabled 'Student'
true
0 row(s) in 0.0150 seconds

删除表

删除表之前,需先禁用表
hbase(main):012:0> disable 'Student'
0 row(s) in 2.2390 seconds
删除表
hbase(main):013:0> drop 'Student'
0 row(s) in 1.2630 seconds
确认表是否已经被删除
hbase(main):015:0> exists 'Student'
Table Student does not exist
0 row(s) in 0.0090 seconds

增删改表

上一步已经删除了Student表,现在先将表再次创建出来
hbase(main):016:0> create 'Student','baseInfo','schoolInfo'
0 row(s) in 2.2290 seconds

=> Hbase::Table - Student

 添加列族

hbase(main):017:0> alter 'Student','teacherInfo'
Updating all regions with the new schema...
1/1 regions updated.
Done.
0 row(s) in 1.9380 seconds


hbase(main):018:0> describe 'Student'
Table Student is ENABLED
Student
COLUMN FAMILIES DESCRIPTION
{NAME => 'baseInfo', BLOOMFILTER => 'ROW', VERSIONS => '1', IN_MEMORY => 'false'
, KEEP_DELETED_CELLS => 'FALSE', DATA_BLOCK_ENCODING => 'NONE', TTL => 'FOREVER'
, COMPRESSION => 'NONE', MIN_VERSIONS => '0', BLOCKCACHE => 'true', BLOCKSIZE =>
 '65536', REPLICATION_SCOPE => '0'}
{NAME => 'schoolInfo', BLOOMFILTER => 'ROW', VERSIONS => '1', IN_MEMORY => 'fals
e', KEEP_DELETED_CELLS => 'FALSE', DATA_BLOCK_ENCODING => 'NONE', TTL => 'FOREVE
R', COMPRESSION => 'NONE', MIN_VERSIONS => '0', BLOCKCACHE => 'true', BLOCKSIZE
=> '65536', REPLICATION_SCOPE => '0'}
{NAME => 'teacherInfo', BLOOMFILTER => 'ROW', VERSIONS => '1', IN_MEMORY => 'fal
se', KEEP_DELETED_CELLS => 'FALSE', DATA_BLOCK_ENCODING => 'NONE', TTL => 'FOREV
ER', COMPRESSION => 'NONE', MIN_VERSIONS => '0', BLOCKCACHE => 'true', BLOCKSIZE
 => '65536', REPLICATION_SCOPE => '0'}
3 row(s) in 0.0130 seconds

删除列族

删除列族
hbase(main):019:0> alter 'Student',{NAME=>'teacherInfo', METHOD =>'delete'}
Updating all regions with the new schema...
1/1 regions updated.
Done.
0 row(s) in 2.3900 seconds

查看表结构
hbase(main):020:0> describe 'Student'
Table Student is ENABLED
Student
COLUMN FAMILIES DESCRIPTION
{NAME => 'baseInfo', BLOOMFILTER => 'ROW', VERSIONS => '1', IN_MEMORY => 'false'
, KEEP_DELETED_CELLS => 'FALSE', DATA_BLOCK_ENCODING => 'NONE', TTL => 'FOREVER'
, COMPRESSION => 'NONE', MIN_VERSIONS => '0', BLOCKCACHE => 'true', BLOCKSIZE =>
 '65536', REPLICATION_SCOPE => '0'}
{NAME => 'schoolInfo', BLOOMFILTER => 'ROW', VERSIONS => '1', IN_MEMORY => 'fals
e', KEEP_DELETED_CELLS => 'FALSE', DATA_BLOCK_ENCODING => 'NONE', TTL => 'FOREVE
R', COMPRESSION => 'NONE', MIN_VERSIONS => '0', BLOCKCACHE => 'true', BLOCKSIZE
=> '65536', REPLICATION_SCOPE => '0'}
2 row(s) in 0.0180 seconds

 插入/更新数据

语法:put ‘表名’, ‘行键’,‘列族:列’,‘值’

注意:如果新增数据的行键值、列族名、列名与原有数据完全相同(除了值之外),则相当于更新操作,否则为插入操作。

put插入一些数据 

put 'Student', 'rowkey1','baseInfo:name','jim'
put 'Student', 'rowkey1','baseInfo:birthday','1990-01-09'
put 'Student', 'rowkey1','baseInfo:age','18'
put 'Student', 'rowkey1','schoolInfo:name','Havard'
put 'Student', 'rowkey1','schoolInfo:localtion','Boston'

put 'Student', 'rowkey2','baseInfo:name','jack'
put 'Student', 'rowkey2','baseInfo:birthday','1998-08-22'
put 'Student', 'rowkey2','baseInfo:age','21'
put 'Student', 'rowkey2','schoolInfo:name','yale'
put 'Student', 'rowkey2','schoolInfo:localtion','New Haven'

put 'Student', 'rowkey3','baseInfo:name','maike'
put 'Student', 'rowkey3','baseInfo:birthday','1995-01-22'
put 'Student', 'rowkey3','baseInfo:age','24'
put 'Student', 'rowkey3','schoolInfo:name','yale'
put 'Student', 'rowkey3','schoolInfo:localtion','New Haven'

put 'Student', 'wrowkey4','baseInfo:name','maike-jack'

put更新操作

hbase(main):021:0> put 'Student','rowkey1','baseInfo:name','tom'
0 row(s) in 0.0760 seconds

hbase(main):022:0> put 'Student','rowkey1','baseInfo:birthday','1990-01-01'
0 row(s) in 0.0710 seconds

hbase(main):024:0> put 'Student','rowkey1','baseInfo:age','29'
0 row(s) in 0.0080 seconds

 删除行数据

查看行数据
hbase(main):042:0> get 'Student','rowkey3'
COLUMN                CELL
 baseInfo:age         timestamp=1600789513388, value=24
 baseInfo:birthday    timestamp=1600789513369, value=1995-01-22
 baseInfo:name        timestamp=1600789513349, value=maike
 schoolInfo:localtion timestamp=1600789513415, value=New Haven
 schoolInfo:name      timestamp=1600789513405, value=yale
1 row(s) in 0.0110 seconds
删除指定行中指定列的数据
hbase(main):043:0> delete 'Student','rowkey3','baseInfo:name'
0 row(s) in 0.0240 seconds
再次查看行数据
hbase(main):044:0> get 'Student','rowkey3'
COLUMN                CELL
 baseInfo:age         timestamp=1600789513388, value=24
 baseInfo:birthday    timestamp=1600789513369, value=1995-01-22
 schoolInfo:localtion timestamp=1600789513415, value=New Haven
 schoolInfo:name      timestamp=1600789513405, value=yale
1 row(s) in 0.0070 seconds

 

查询

hbase中访问数据有两种基本的方式:

  • 按指定rowkey获取数据:get方法;

  • 按指定条件获取数据:scan方法。

scan可以设置begin和end参数来访问一个范围内所有的数据。get本质上就是begin和end相等的一种特殊的scan。

GET查询

按rowkey查询
hbase(main):059:0> get 'Student','rowkey3'
COLUMN                CELL
 baseInfo:age         timestamp=1600789513388, value=24
 baseInfo:birthday    timestamp=1600789513369, value=1995-01-22
 schoolInfo:localtion timestamp=1600789513415, value=New Haven
 schoolInfo:name      timestamp=1600789513405, value=yale
1 row(s) in 0.0110 seconds

按rowkey和列族来查询
hbase(main):060:0> get 'Student','rowkey3','baseInfo'
COLUMN                CELL
 baseInfo:age         timestamp=1600789513388, value=24
 baseInfo:birthday    timestamp=1600789513369, value=1995-01-22
1 row(s) in 0.0070 seconds

按rowkey和列族中的某列来查询
hbase(main):061:0> get 'Student','rowkey3','baseInfo:age'
COLUMN                CELL
 baseInfo:age         timestamp=1600789513388, value=24
1 row(s) in 0.0090 seconds

hbase(main):062:0>

SCAN查询

hbase(main):065:0> scan 'Student'
ROW                            COLUMN+CELL
 rowkey1                       column=baseInfo:age, timestamp=1600789446674, value=29
 rowkey1                       column=baseInfo:birthday, timestamp=1600789402212, value=1990-01-01
 rowkey1                       column=baseInfo:name, timestamp=1600789375235, value=tom
 rowkey1                       column=schoolInfo:localtion, timestamp=1600789503013, value=Boston
 rowkey1                       column=schoolInfo:name, timestamp=1600789500988, value=Havard
 rowkey2                       column=baseInfo:age, timestamp=1600789513297, value=21
 rowkey2                       column=baseInfo:birthday, timestamp=1600789513285, value=1998-08-22
 rowkey2                       column=baseInfo:name, timestamp=1600789513258, value=jack
 rowkey2                       column=schoolInfo:localtion, timestamp=1600789513328, value=New Haven
 rowkey2                       column=schoolInfo:name, timestamp=1600789513314, value=yale
 rowkey3                       column=baseInfo:age, timestamp=1600789513388, value=24
 rowkey3                       column=baseInfo:birthday, timestamp=1600789513369, value=1995-01-22
 rowkey3                       column=schoolInfo:localtion, timestamp=1600789513415, value=New Haven
 rowkey3                       column=schoolInfo:name, timestamp=1600789513405, value=yale
 wrowkey4                      column=baseInfo:name, timestamp=1600789515763, value=maike-jack
4 row(s) in 0.0180 seconds
hbase(main):068:0> scan 'Student',{COLUMN=>'baseInfo'}
ROW                            COLUMN+CELL
 rowkey1                       column=baseInfo:age, timestamp=1600789446674, value=29
 rowkey1                       column=baseInfo:birthday, timestamp=1600789402212, value=1990-01-01
 rowkey1                       column=baseInfo:name, timestamp=1600789375235, value=tom
 rowkey2                       column=baseInfo:age, timestamp=1600789513297, value=21
 rowkey2                       column=baseInfo:birthday, timestamp=1600789513285, value=1998-08-22
 rowkey2                       column=baseInfo:name, timestamp=1600789513258, value=jack
 rowkey3                       column=baseInfo:age, timestamp=1600789513388, value=24
 rowkey3                       column=baseInfo:birthday, timestamp=1600789513369, value=1995-01-22
 wrowkey4                      column=baseInfo:name, timestamp=1600789515763, value=maike-jack
4 row(s) in 0.0180 seconds
hbase(main):071:0> scan 'Student',{COLUMNS=>'baseInfo:birthday'}
ROW                            COLUMN+CELL
 rowkey1                       column=baseInfo:birthday, timestamp=1600789402212, value=1990-01-01
 rowkey2                       column=baseInfo:birthday, timestamp=1600789513285, value=1998-08-22
 rowkey3                       column=baseInfo:birthday, timestamp=1600789513369, value=1995-01-22
3 row(s) in 0.0190 seconds
STARTROW为开始行
STOPROW为结束行
LIMIT为限制查询结果行数
VERSIONS版本数
hbase(main):003:0> scan 'Student', {COLUMNS=> 'baseInfo',STARTROW => 'rowkey2',STOPROW => 'wrowkey4'}
ROW                            COLUMN+CELL
 rowkey2                       column=baseInfo:age, timestamp=1600789513297, value=21
 rowkey2                       column=baseInfo:birthday, timestamp=1600789513285, value=1998-08-22
 rowkey2                       column=baseInfo:name, timestamp=1600789513258, value=jack
 rowkey3                       column=baseInfo:age, timestamp=1600789513388, value=24
 rowkey3                       column=baseInfo:birthday, timestamp=1600789513369, value=1995-01-22
2 row(s) in 0.0200 seconds
只显示1条数据
hbase(main):007:0> scan 'Student', {COLUMNS=> 'baseInfo',STARTROW => 'rowkey2',STOPROW => 'wrowkey4',LIMIT=>1}
ROW                            COLUMN+CELL
 rowkey2                       column=baseInfo:age, timestamp=1600789513297, value=21
 rowkey2                       column=baseInfo:birthday, timestamp=1600789513285, value=1998-08-22
 rowkey2                       column=baseInfo:name, timestamp=1600789513258, value=jack
1 row(s) in 0.0090 seconds

查询年龄等于24的数据

hbase(main):010:0> scan 'Student', FILTER=>"ValueFilter(=,'binary:24')"
ROW                            COLUMN+CELL
 rowkey3                       column=baseInfo:age, timestamp=1600789513388, value=24
1 row(s) in 0.0790 seconds

查询包含字符串yal的数据

hbase(main):011:0> scan 'Student', FILTER=>"ValueFilter(=,'substring:yal')"
ROW                            COLUMN+CELL
 rowkey2                       column=schoolInfo:name, timestamp=1600789513314, value=yale
 rowkey3                       column=schoolInfo:name, timestamp=1600789513405, value=yale
2 row(s) in 0.0270 seconds

查询列包括birth和值包括1988的数据

hbase(main):012:0> scan 'Student', FILTER=>"ColumnPrefixFilter('birth') AND ValueFilter ValueFilter(=,'substring:1998')"
ROW                            COLUMN+CELL
 rowkey2                       column=baseInfo:birthday, timestamp=1600789513285, value=1998-08-22
1 row(s) in 0.0630 seconds

PrefixFilter用于对Rowkey的前缀进行判断:

hbase(main):013:0> scan 'Student', FILTER=>"PrefixFilter('wr')"
ROW                            COLUMN+CELL
 wrowkey4                      column=baseInfo:name, timestamp=1600789515763, value=maike-jack
1 row(s) in 0.0190 seconds

 

参考:https://github.com/heibaiying/BigData-Notes/blob/master/notes/Hbase_Shell.md

 

 

完成!enjoy it!

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值