3.HBase_基础应用Shell

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_15014327/article/details/83317854

我使用Ambari安装的Hadoop集群及扩展组件,其中包括:HDFS、MR、Yarn、ZK、Hive、HBase等。后续有时间会补上Ambari和CDH安装管理Hadoop集群的博文。

1.开启HBase Server

因为HBase数据存储在HDFS上,元数据由ZK管理。因此,首先在Ambari管理页面打开HDFS、ZK、HBase服务(其他服务就不打开了,电脑内存消耗太大)。

也可以通过命令开启服务:

# 开启HBase HMaster
$ /usr/bin/hbase master

# 开启HBase HRegion Server
$ /usr/bin/hbase regionserver

2.打开HBase客户端

# 由于我是Ambari安装的,所以尽量去hbase用户下操作
$ su hbase

# 打开客户端
$ /usr/bin/hbase shell
hbase(main):010:0>

3.查看所有的表

hbase(main):001:0> list
TABLE                                                                               
0 row(s) in 0.7970 seconds

=> []

4.创建命名空间

hbase(main):002:0> create_namespace 'lv'
0 row(s) in 1.6850 seconds

5.创建表

hbase(main):003:0> create 'lv:emp','info'
0 row(s) in 8.5390 seconds

=> Hbase::Table - lv:emp
hbase(main):004:0> list
TABLE                                                                         
lv:emp                                                         
1 row(s) in 0.0130 seconds

=> ["lv:emp"]

6.查看表描述

hbase(main):012:0> describe 'lv:emp'
Table lv:emp is ENABLED                                                     
lv:emp                                                                    
COLUMN FAMILIES DESCRIPTION                
{NAME => 'info', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'ROW', 
 REPLICATION_SCOPE => '0', VERSIONS => '1', COMPRESSION => 'NONE', MIN_VERSIONS => '0', 
 TTL => 'FOREVER', KEEP_DELETED_CELLS => 'FALSE', BLOCKSIZE => '65536', 
 IN_MEMORY => 'false', BLOCKCACHE => 'true'}                                      
1 row(s) in 0.5170 seconds

7.增加列族

# 添加列族
hbase(main):014:0> alter 'lv:emp',NAME=>'extra'
Updating all regions with the new schema...
0/1 regions updated.
1/1 regions updated.
Done.
0 row(s) in 39.7940 seconds

8.删除列族

hbase(main):017:0> alter 'lv:emp','delete'=>'extra'
Updating all regions with the new schema...
0/1 regions updated.
1/1 regions updated.
Done.
0 row(s) in 4.6710 seconds

9.插入数据

hbase(main):006:0> put 'lv:emp','10001','info:name','Tom'
0 row(s) in 0.5850 seconds

hbase(main):007:0> put 'lv:emp','10001','info:age',22
0 row(s) in 0.1350 seconds

hbase(main):008:0> scan 'lv:emp'
ROW                                COLUMN+CELL                                            
 10001                             column=info:age, timestamp=1540313386407, value=22     
 10001                             column=info:name, timestamp=1540313372985, value=Tom   
1 row(s) in 0.1750 seconds

10.查询数据

# 根据RowKey扫描
scan 'lv:emp','10001'

# 全表扫描
scan 'lv:emp'

# 取前两条
scan 'lv:emp',{LIMIT => 2}

# 范围扫描
scan 'lv:emp',{STARTROW  => '10007'}
scan 'lv:emp',{STARTROW  => '10007',ENDROW  => '10009'}

11.统计表记录数

hbase(main):020:0> count 'lv:emp'
1 row(s) in 0.5160 seconds

=> 1

12.删除数据

# 删除列
hbase(main):008:0> delete 'lv:emp', '10001', 'info:age'
0 row(s) in 0.0290 seconds

# 删除整行
hbase(main):014:0> deleteall 'lv:emp', '10001'
0 row(s) in 0.0090 seconds

# 删除表中所有数据
hbase(main):016:0> truncate 'lv:emp'

13.管理表

# 禁用表
hbase(main):020:0> disable 'lv:emp'

# 启用表
hbase(main):020:0> enable 'lv:emp'

# 判断是否存在
hbase(main):020:0> exists 'lv:emp'

# 删除表
hbase(main):020:0> disable 'lv:emp'
hbase(main):020:0> drop 'lv:emp'

猜你喜欢

转载自blog.csdn.net/qq_15014327/article/details/83317854