我使用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'