阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

HBase高可用集群部署(CDH)

194次阅读
没有评论

共计 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

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计6146字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中