1. status命令

查看集群状态

hbase(main):014:0> status
1 active master, 1 backup masters, 2 servers, 0 dead, 1.5000 average load

2. version命令

查看版本信息

hbase(main):015:0> version
1.3.1, r930b9a55528fe45d8edce7af42fef2d35e77677a, Thu Apr  6 19:36:54 PDT 2017

3. create命令

创建一个名为 test 的表,这个表只有一个列为 cf。其中表名、列都要用单引号括起来,并以逗号隔开。

hbase(main):001:0> create 'test', 'cf'
0 row(s) in 1.4620 seconds
=> Hbase::Table - test

4. list 命令

查看当前 HBase 中具有哪些表。

hbase(main):002:0> list
TABLE                                                                                                        
test                                                                                                         
test1                                                                                                        
2 row(s) in 0.0170 seconds

=> ["test", "test1"]

5. put 命令

使用 put 命令向表中插入数据,参数分别为表名、行名、列名和值,其中列名前需要列族最为前缀,时间戳由系统自动生成。
格式: put 表名,行名,列名([列族:列名]),值
例子:
加入一行数据,行名称为“row1”,列族“cf”的列名为”(空字符串)”,值位 value1。
我这里插入3条记录

put 'test', 'row1', 'cf:a', 'value1'
put 'test', 'row2', 'cf:b', 'value2'
put 'test', 'row3', 'cf:c', 'value3'

6. describe 命令

查看表“test”的构造。

hbase(main):006:0> describe 'test'
Table test is ENABLED                                                                                                                                                      
test                                                                                                                                                                       
COLUMN FAMILIES DESCRIPTION                                                                                                                                                
{NAME => 'cf', 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'}                                                                         
1 row(s) in 0.0690 seconds

7. get 命令

a.查看表“test”中的行“row2”的相关数据。

hbase(main):007:0> get 'test','row2'
COLUMN                                      CELL                                                                                                                           
 cf:b                                       timestamp=1506416379989, value=value2                                                                                          
1 row(s) in 0.0320 seconds

b.查看表“test”中行“row2”列“cf :b”的值。

hbase(main):021:0* get 'test','row2', 'cf:b'
COLUMN                                      CELL                                                                                                                           
 cf:b                                       timestamp=1506416379989, value=value2                                                                                          
1 row(s) in 0.0150 seconds

或者

hbase(main):027:0* get 'test', 'row2', {COLUMN=>'cf:b'}
COLUMN                                      CELL                                                                                                                           
 cf:b                                       timestamp=1506416379989, value=value2                                                                                          
1 row(s) in 0.0120 seconds

hbase(main):028:0>  get 'test', 'row2', {COLUMNS=>'cf:b'}
COLUMN                                      CELL                                                                                                                           
 cf:b                                       timestamp=1506416379989, value=value2                                                                                          
1 row(s) in 0.0070 seconds

备注:COLUMN 和 COLUMNS 是不同的,scan 操作中的 COLUMNS 指定的是表的列族, get操作中的 COLUMN 指定的是特定的列,COLUMNS 的值实质上为“列族:列修饰符”。 COLUMN 和 COLUMNS 必须为大写。

8. scan 命令

a. 查看表“test”中的所有数据。

hbase(main):030:0> scan 'test'
ROW                                         COLUMN+CELL                                                                                                                    
 row1                                       column=cf:a, timestamp=1506416376149, value=value1                                                                             
 row2                                       column=cf:b, timestamp=1506416379989, value=value2                                                                             
 row3                                       column=cf:c, timestamp=1506416387650, value=value3                                                                             
3 row(s) in 0.0160 seconds

注意:
scan 命令可以指定 startrow,stoprow 来 scan 多个 row。
例如:

scan 'user_test',{COLUMNS =>'info:username',LIMIT =>10, STARTROW => 'test', STOPROW=>'test2'}

b.查看表“scores”中列族“course”的所有数据。

hbase(main):012:0> scan  'scores', {COLUMN => 'grad'}
hbase(main):012:0> scan  'scores', {COLUMN=>'course:math'}
hbase(main):012:0> scan  'scores', {COLUMNS => 'course'}
hbase(main):012:0> scan  'scores', {COLUMNS => 'course'}

9. count 命令——统计出表中有多少条记录

hbase(main):032:0> count 'test'
3 row(s) in 0.0200 seconds

=> 3

10. exists 命令——查看表是否存在

hbase(main):033:0> exists 'test'
Table test does exist                                                                                        
0 row(s) in 0.0150 seconds

hbase(main):034:0> exists 'test2'
Table test2 does not exist                                                                                   
0 row(s) in 0.0110 seconds

启用表、禁用表

enable 'test'
disable 'test'

删除表
删除表需要先禁用表

hbase(main):042:0>  disable 'test'
0 row(s) in 2.2470 seconds

hbase(main):043:0> drop 'test'
0 row(s) in 1.2570 seconds

11. 删除一个列族

alter,disable,enable
我们之前建了3个列族,但是发现member_id这个列族是多余的,因为他就是主键,所以我们要将其删除。


hbase(main):003:0>alter 'member',{NAME=>'member_id',METHOD=>'delete'}

ERROR: Table memberis enabled. Disable it first before altering.

报错,删除列族的时候必须先将表给disable掉。
hbase(main):004:0>disable 'member'                                  
0 row(s) in 2.0390seconds
hbase(main):005:0>alter'member',NAME=>'member_id',METHOD=>'delete'
0 row(s) in 0.0560seconds
hbase(main):006:0>describe 'member'
DESCRIPTION                                                                                          ENABLED                                               
{NAME => 'member', FAMILIES => [{NAME=> 'address', BLOOMFILTER => 'NONE', REPLICATION_SCOPE => '0',false                                                 
  VERSIONS => '3', COMPRESSION => 'NONE',TTL => '2147483647', BLOCKSIZE => '65536', IN_MEMORY => 'fa                                                       
lse', BLOCKCACHE => 'true'}, {NAME =>'info', BLOOMFILTER => 'NONE', REPLICATION_SCOPE => '0', VERSI                                                       
ONS => '3', COMPRESSION => 'NONE', TTL=> '2147483647', BLOCKSIZE => '65536', IN_MEMORY => 'false',                                                        
BLOCKCACHE => 'true'}]}                                                                                                                                    
1 row(s) in 0.0230seconds
该列族已经删除,我们继续将表enable
hbase(main):008:0> enable 'member'  
0 row(s) in 2.0420seconds

12.更新一条记录

将scutshuxue的年龄改成99
hbase(main):004:0>put 'member','scutshuxue','info:age' ,'99'
0 row(s) in 0.0210seconds

hbase(main):005:0>get 'member','scutshuxue','info:age' 
COLUMN                                   CELL                                                                                                               
info:age                               timestamp=1321586571843, value=99                                                                                  
1 row(s) in 0.0180seconds

hadoop dfs -rm -r /myback/*

posted on 2017-09-28 17:04  菜鸡天然呆  阅读(127)  评论(0)    收藏  举报