共计 6146 个字符,预计需要花费 16 分钟才能阅读完成。
一、概要
本文记录 HBase 高可用集群部署过程,在部署 HBase 之前需要事先部署好 Hadoop 集群,因为 HBase 的数据需要存放在 hdfs 上,Hadoop 集群的部署后续会有一篇文章记录,本文假设 Hadoop 集群已经部署好,分布式 HBase 集群需要依赖 zk,并且 zk 可以是 HBase 自己托管的也可以是我们自己单独搭建的,这里我们使用自己单独搭建的 zk 集群,我们的 Hadoop 集群是用的 cdh 的发行版,所以 HBase 也会使用 cdh 的源。
二、环境
1、软件版本
CentOS6
zookeeper-3.4.5+cdh5.9.0+98-1.cdh5.9.0.p0.30.el6.x86_64
hadoop-2.6.0+cdh5.9.0+1799-1.cdh5.9.0.p0.30.el6.x86_64
hbase-1.2.0+cdh5.9.0+205-1.cdh5.9.0.p0.30.el6.x86_64
2、角色
a、zk 集群
10.10.20.64:2181
10.10.40.212:2181
10.10.102.207:2181
b、hbase
10.10.40.212 HMaster
10.10.20.64 HMaster
10.10.10.114 HRegionServer
10.10.40.169 HRegionServer
10.10.30.174 HRegionServer
三、部署
1、配置 cdh 的 yum 源
vim /etc/yum.repos.d/cloudera-cdh.repo
[cloudera-cdh5]
# Packages for Cloudera’s Distribution for Hadoop, Version 5.4.4, on RedHat or CentOS 6 x86_64
name=Cloudera’s Distribution for Hadoop, Version 5.4.8
baseurl=http://archive.cloudera.com/cdh5/redhat/6/x86_64/cdh/5.9.0/
gpgkey=http://archive.cloudera.com/cdh5/redhat/6/x86_64/cdh/RPM-GPG-KEY-cloudera
gpgcheck=1
[cloudera-gplextras5b2]
# Packages for Cloudera’s GPLExtras, Version 5.4.4, on RedHat or CentOS 6 x86_64
name=Cloudera’s GPLExtras, Version 5.4.8
baseurl=http://archive.cloudera.com/gplextras5/redhat/6/x86_64/gplextras/5.9.0/
gpgkey=http://archive.cloudera.com/gplextras5/redhat/6/x86_64/gplextras/RPM-GPG-KEY-cloudera
gpgcheck=1
2、安装 zk 集群(所有 zk 节点都操作)
1、安装
yum -y install zookeeper zookeeper-server
b、配置
vim /etc/zookeeper/conf/zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/data/lib/zookeeper
clientPort=2181
maxClientCnxns=0
server.1=10.10.20.64:2888:3888
server.2=10.10.40.212:2888:3888
server.3=10.10.102.207:2888:3888
autopurge.snapRetainCount=3
autopurge.purgeInterval=1
mkdir -p /data/lib/zookeeper #建 zk 的 dir 目录
echo 1 >/data/lib/zookeeper/myid #10.10.20.64 上操作
echo 2 >/data/lib/zookeeper/myid #10.10.40.212 上操作
echo 3 >/data/lib/zookeeper/myid #10.10.102.207 上操作
c、启动服务
/etc/init.d/zookeeper-server start
3、安装配置 hbase 集群
a、安装
yum -y install hbase hbase-master #HMaster 节点操作
yum -y install hbase hbase-regionserver #HRegionServer 节点操作
b、配置(所有 base 节点操作)
vim /etc/hbase/conf/hbase-site.xml
<?xml version=”1.0″?>
<?xml-stylesheet type=”text/xsl” href=”https://www.linuxidc.com/Linux/2017-05/configuration.xsl”?>
<configuration>
<property>
<name>hbase.zookeeper.quorum</name>
<value>10.10.20.64:2181,10.10.40.212:2181,10.10.102.207:2181</value>
</property>
<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2181</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/data/lib/zookeeper/</value>
</property>
<property>
<name>hbase.rootdir</name>
<value>hdfs://mycluster:8020/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
<description> 集群的模式,分布式还是单机模式,如果设置成 false 的话,HBase 进程和 Zookeeper 进程在同一个 JVM 进程
</description>
</property>
</configuration>
echo “export HBASE_MANAGES_ZK=false” >>/etc/hbase/conf/hbase-env.sh
# 设置 hbase 使用独立的 zk 集群
vim /etc/hbase/conf/regionservers
ip-10-10-30-174.ec2.internal
ip-10-10-10-114.ec2.internal
ip-10-10-40-169.ec2.internal
# 添加 HRegionServer 的主机名到 regionservers,我没有在 /etc/hosts 下做主机名的映射,直接用了 ec2 的默认主机名
c、启动服务
/etc/init.d/hbase-master start #HMaster 节点操作
/etc/init.d/hbase-regionserver start #HRegionServer 节点操作
4、验证
a、验证基本功能
[root@ip-10-10-20-64 ~]# hbase shell
2017-05-10 16:31:20,225 INFO [main] Configuration.deprecation: hadoop.native.lib is deprecated. Instead, use io.native.lib.available
HBase Shell; enter ‘help<RETURN>’ for list of supported commands.
Type “exit<RETURN>” to leave the HBase Shell
Version 1.2.0-cdh5.9.0, rUnknown, Fri Oct 21 01:19:47 PDT 2016
hbase(main):001:0> status
1 active master, 1 backup masters, 3 servers, 0 dead, 1.3333 average load
hbase(main):002:0> list
TABLE
test
test1
2 row(s) in 0.0330 seconds
=> [“test”, “test1”]
hbase(main):003:0> describe ‘test’
Table test is ENABLED
test
COLUMN FAMILIES DESCRIPTION
{NAME => ‘id’, BLOOMFILTER => ‘ROW’, VERSIONS => ‘1’, IN_MEMORY => ‘false’, KEEP_DELETED_CELLS => ‘FALSE’, DATA_BLOCK_ENCODING => ‘NONE’, TTL => ‘FOREVER’, COMPRESSION => ‘NONE’, MIN_VERSIO
NS => ‘0’, BLOCKCACHE => ‘true’, BLOCKSIZE => ‘65536’, REPLICATION_SCOPE => ‘0’}
{NAME => ‘name’, BLOOMFILTER => ‘ROW’, VERSIONS => ‘1’, IN_MEMORY => ‘false’, KEEP_DELETED_CELLS => ‘FALSE’, DATA_BLOCK_ENCODING => ‘NONE’, TTL => ‘FOREVER’, COMPRESSION => ‘NONE’, MIN_VERS
IONS => ‘0’, BLOCKCACHE => ‘true’, BLOCKSIZE => ‘65536’, REPLICATION_SCOPE => ‘0’}
{NAME => ‘text’, BLOOMFILTER => ‘ROW’, VERSIONS => ‘1’, IN_MEMORY => ‘false’, KEEP_DELETED_CELLS => ‘FALSE’, DATA_BLOCK_ENCODING => ‘NONE’, TTL => ‘FOREVER’, COMPRESSION => ‘NONE’, MIN_VERS
IONS => ‘0’, BLOCKCACHE => ‘true’, BLOCKSIZE => ‘65536’, REPLICATION_SCOPE => ‘0’}
3 row(s) in 0.1150 seconds
hbase(main):004:0>
b、验证 HA 功能
1、hbase 默认的 web 管理端口是 60010,两个 HMaster 谁先启动谁就是主 active 节点,10.10.40.212 先启动,10.10.20.64 后启动,web 截图如下:
wKioL1kSy5XRDLyYAAFNEiPWdq8622.png-wh_50
wKiom1kSy5az5p8nAAEheuczSu0415.png-wh_50
2、停止 10.10.40.212 的 HMaster 进程,查看 10.10.20.64 是否会提升为 master
/etc/init.d/hbase-master stop
wKiom1kSzgzxbSyNAAFvwEWvXYk365.png-wh_50
Ubuntu 14.04 下 HBase 单机和伪分布式模式安装配置 http://www.linuxidc.com/Linux/2017-04/143048.htm
Hadoop+HBase 搭建云存储总结 PDF http://www.linuxidc.com/Linux/2013-05/83844.htm
Ubuntu Server 14.04 下 Hbase 数据库安装 http://www.linuxidc.com/Linux/2016-05/131499.htm
HBase 结点之间时间不一致造成 regionserver 启动失败 http://www.linuxidc.com/Linux/2013-06/86655.htm
深入理解 HBase 架构原理 http://www.linuxidc.com/Linux/2017-01/139173.htm
Hadoop 集群安装 &HBase 实验环境搭建 http://www.linuxidc.com/Linux/2013-04/83560.htm
基于 Hadoop 集群的 HBase 集群的配置 http://www.linuxidc.com/Linux/2013-03/80815.htm‘
Hadoop 安装部署笔记之 -HBase 完全分布模式安装 http://www.linuxidc.com/Linux/2012-12/76947.htm
CentOS 6.4 下 HBase 集群安装 http://www.linuxidc.com/Linux/2016-11/137303.htm
HBase 的详细介绍 :请点这里
HBase 的下载地址 :请点这里
本文永久更新链接地址 :http://www.linuxidc.com/Linux/2017-05/143686.htm