HBase实战案例一之基本Shell命令
1 示例1
-
create 操作
hbase(main):010:0> create 'telecom','cf'
0 row(s) in 1.3080 seconds
=> Hbase::Table - telecom-
desc 操作
hbase(main):004:0> desc 'telecom'
Table telecom is ENABLED
telecom
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', BLO
CKCACHE => 'true', BLOCKSIZE => '65536', REPLICATION_SCOPE => '0'}
1 row(s) in 0.0350 seconds解析显示结果:
Table telecom is ENABLED:telecom 表可用
telecom: 表名
COLUMN FAMILIES DESCRIPTION:列族描述
{...}:表示列族的详细特征。其中主要的字段意义如下:
name :列族名称
bloomfilter :布隆过滤器
-
put 操作【仅提供两条】
put 'telecom', '001','cf:duration', 2046
put 'telecom', '002','cf:duration', 782-
scan 操作
hbase(main):014:0> scan 'telecom'
ROW COLUMN+CELL
001 column=cf:duration, timestamp=1542164106661, value=2046
002 column=cf:duration, timestamp=1542164111651, value=782
2 row(s) in 0.0250 seconds-
get 操作
hbase(main):026:0> get 'telecom','001'
COLUMN CELL
cf:duration timestamp=1542164106661, value=2046
1 row(s) in 0.2040 seconds
hbase(main):027:0> get 'telecom','0001'
COLUMN CELL
0 row(s) in 0.0060 secondshbase(main):031:0> get 'telecom','001','cf:duration'
COLUMN CELL
cf:duration timestamp=1542164106661, value=2046
1 row(s) in 0.0170 seconds这个时候若再执行如下操作:
hbase(main):032:0> put 'telecom', '001','cf:test', 1024
0 row(s) in 0.0350 seconds
hbase(main):033:0> scan 'telecom'
ROW COLUMN+CELL
001 column=cf:duration, timestamp=1542164106661, value=2046
001 column=cf:test, timestamp=1542164576852, value=1024
002 column=cf:duration, timestamp=1542164111651, value=782
2 row(s) in 0.0150 secondshbase(main):034:0> get 'telecom','001','cf:test'
COLUMN CELL
cf:test timestamp=1542164576852, value=1024
1 row(s) in 0.0110 seconds-
count 操作
hbase(main):006:0> count 'telecom'
2 row(s) in 0.6030 seconds
=> 2上面这个count 'student'的功能就是查找student表中不同rowKey的行数。
-
disable 操作
hbase(main):044:0> disable 'telecom'
0 row(s) in 2.2880 seconds若此时,还执行扫全表操作,则会报错
hbase(main):045:0> scan 'telecom'
ROW COLUMN+CELL
ERROR: telecom is disabled.-
enable 操作
hbase(main):046:0> enable 'telecom'
0 row(s) in 1.2890 secondsenable 的操作是使表重新回到可用状态。
-
delete 操作
hbase(main):046:0> enable 'telecom'
0 row(s) in 1.2890 seconds
hbase(main):047:0> scan 'telecom'
ROW COLUMN+CELL
001 column=cf:duration, timestamp=1542164106661, value=2046
001 column=cf:test, timestamp=1542164576852, value=1024
002 column=cf:duration, timestamp=1542164111651, value=782
2 row(s) in 0.0160 secondsdeleteall 'telecom','001'上述的操作是删除telecom表中的rowKey = 0001的所有数据
hbase(main):049:0> scan 'telecom'
ROW COLUMN+CELL
002 column=cf:duration, timestamp=1542164111651, value=782
1 row(s) in 0.0060 seconds-
drop 操作
drop表之前,需要先将表diable掉。
hbase(main):050:0> disable 'telecom'
0 row(s) in 2.2790 seconds
hbase(main):051:0> drop 'telecom'
0 row(s) in 1.2360 secondshbase(main):053:0> list 'telecom'
TABLE
0 row(s) in 0.0080 seconds
=> []再次查看表时,发现表已不存在。
2. 注
- 如何使用命令查看hbase集群节点的状态?
hbase(main):060:0> status
1 active master, 0 backup masters, 3 servers, 0 dead, 2.6667 average load- 针对上述的put操作语句,会得到一个hbase表,但是如果将这个hbase表用行列的形式展现出来,会是什么样子呢?如下图所示:

- 如果需要在扫描表的时候指定扫描区间,如何操作?
3. 参考文章
- http://hbase.apache.org/book.html#shell_exercises










