如果对英文比较熟悉,建议直接看HBase官网
本文以hbase-1.6.0为例来分享一下Centos6上的HBase集群的部署流程。实验环境使用三个节点:
node01.aries.com
node02.aries.com
node03.aries.com
服务分布
服务 | node01 | node02 | node03 |
---|---|---|---|
NameNode | 是 | 是 | 否 |
DataNode | 是 | 是 | 是 |
HMaster | 是 | 是 | 否 |
RegionServer | 是 | 是 | 是 |
ZooKeeper | 是 | 是 | 是 |
Journalnode | 是 | 是 | 是 |
正常的HBase集群的部署流程是先搭建zookeeper集群,然后搭建HDFS集群,再部署HBase集群。关于如何部署zookeeper集群和HDFS集群可以参考ZooKeeper集群搭建教程和HDFS HA高可用集群搭建教程,这里不做赘述。
# 下载HBase
wget http://us.mirrors.quenda.co/apache/hbase/1.6.0/hbase-1.6.0-bin.tar.gz
# 解压
tar -zxvf hbase-1.6.0-bin.tar.gz -C /usr/local/
hbase-env.sh
export JAVA_HOME=/usr/local/jdk1.8.0_131
# 如果使用已有的zookeeper集群,则不需要HBase管理zk实例
export HBASE_MANAGES_ZK=false
regionservers
node01.aries.com
node02.aries.com
node03.aries.com
hbase-site.xml
hbase.rootdir
hdfs://aries/hbase
hbase.cluster.distributed
true
hbase.zookeeper.quorum
node01.aries.com,node02.aries.com,node03.aries.com
zookeeper.session.timeout
60000
hbase.zookeeper.property.clientPort
2181
hbase.master.info.port
60010
hbase.master.port
60000
此外,需要将hadoop HA的core-site.xml和hdfs-site.xml链接到HBase的conf目录下,否则HBase无法识别HA集群,不建议直接拷贝,因为后续对hdfs配置有更新的场景不太好维护
ln -s /usr/local/hadoop/2.10.0/etc/hadoop/core-site.xml /usr/local/hbase-1.6.0/conf/core-site.xml
ln -s /usr/local/hadoop/2.10.0/etc/hadoop/hdfs-site.xml /usr/local/hbase-1.6.0/conf/hdfs-site.xml
如果希望启动多个HMaster,可以在conf目录下增加backup-masters文件,添加要用做Backup Master的节点hostname。这里笔者使用node02作为备选Master。
node02.aries.com
接下来将配置好的部署包分发到其他节点。
scp -p -r hbase-1.6.0 [email protected]:/usr/local
scp -p -r hbase-1.6.0 [email protected]:/usr/local
完成上述配置后,我们就可以启动服务了。选择一个主节点,执行
# 选择一个主节点执行
bin/start-hbase.sh
# 启动后会自动启动每个节点的服务,通过jps查看HMaster和RegionServer的启动情况
jps
我们可以通过hbase shell来验证服务。
# 打开hbase shell
sh ./bin/hbase shell
# ----在hbase shell操作----
# 查看hbase状态
status
# 创建表和列族
create 'test','cf'
# 检查表是否存在
list 'test'
# 获取表描述
describe 'test'
# 添加数据
put 'test','rowkey','cf:col','value'
# 扫描表,面向单元格的形式输出每列数据
scan 'test'
# 获取某行数据
get 'test','rowkey'
# 删除单元格
delete 'test','rowkey','cf:col'
# 禁用表
disable 'test'
# 删除表
drop 'test'
# 退出shell
quit
我们也可以打开hdfs的web页面来浏览文件(即集群的50070端口),根目录下会有我们设置的hbase目录。