高可用HBASE搭建

HDFS的高可用搭建不在本篇中描述,请参考《Hadoop HDFS与YARN高可用安装》

节点规划

hostnameip安装服务
zk1192.168.1.1zookeeper
zk2192.168.1.2zookeeper
zk3192.168.1.3zookeeper

提示:

zookeeper集群安装不在本文描述范围, 请自行参考其他文档。(zookeeper集群也可以跟datanode安装在一起)

hostnameip安装服务
master1192.168.1.10HMaster
master2192.168.1.11HMaster
region1192.168.1.12HRegionServer
region2192.168.1.13HRegionServer
  • HBase Master 用于协调多个 Region Server,侦测各个 Region Server 之间的状态,并平衡 Region Server 之间的负载。HBase Master 还有一个职责就是负责分配 Region 给 Region Server。HBase 允许多个 Master 节点共存,但是这需要 Zookeeper 的帮助。不过当多个 Master 节点共存时,只有一个 Master 是提供服务的,其他的 Master 节点处于待命的状态。当正在工作的 Master 节点宕机时,其他的 Master 则会接管 HBase 的集群。
  • 对于一个 Region Server 而言,其包括了多个 Region。Region Server 的作用只是管理表格,以及实现读写操作。Client 直接连接 Region Server,并通信获取 HBase 中的数据。对于 Region 而言,则是真实存放 HBase 数据的地方,也就说 Region 是 HBase 可用性和分布式的基本单位。如果当一个表格很大,并由多个 CF 组成时,那么表的数据将存放在多个 Region 之间,并且在每个 Region 中会关联多个存储的单元(Store)。
  • 对于 HBase 而言,Zookeeper 的作用是至关重要的。首先 Zookeeper 是作为 HBase Master 的 HA 解决方案。也就是说,是 Zookeeper 保证了至少有一个 HBase Master 处于运行状态。并且 Zookeeper 负责 Region 和 Region Server 的注册。其实 Zookeeper 发展到目前为止,已经成为了分布式大数据框架中容错性的标准框架。不光是 HBase,几乎所有的分布式大数据相关的开源框架,都依赖于 Zookeeper 实现 HA。

安装前准备

操作系统:CentOS 6.5 x86_64 JDK:1.8.0_74-b02 (JDK的安装本文不进行描述) Hbase: Hbase-1.2.5-bin.tar.gz Zookeeper: 3.4.6

安装过程

1. 主机名修改

登录nna节点,修改/etc/hosts文件,在后面追加如下内容:

192.168.1.1   zk1
192.168.1.2   zk2
192.168.1.3   zk3
192.168.1.10   master1
192.168.1.11   master2
192.168.1.12   region1
192.168.1.13   region2
# hdfs服务器地址,hdfs搭建请参考《Hadoop HDFS与YARN高可用安装》
192.168.1.4  nna
192.168.1.5  nns
192.168.1.6  dn1
192.168.1.7  dn2
192.168.1.8  dn3

分发到其它主机,下面以zk1为例:

scp /etc/hosts root@zk1:/etc

2. 创建hbase用户

登录除zk外的主机,分别创建hbase用户:

useradd hbase

3. 添加ssh信任

su - hbase

ssh-keygen -t rsa  #一直按回车键,直到交互结束。会在 ~/.ssh/ 目录下生成 id_rsa.pub 文件

cat ~/.ssh/id_rsa.pub  # 拷贝里面的内容

# 在所有主机中重复以上步骤

touch ~/.ssh/authorized_keys && chmod 644 ~/.ssh/authorized_keys


vi ~/.ssh/authorized_keys  # 将所有主机的 id_rsa.pub 文件中的内容都拷贝到此文件中,并将此文件分发到所有主机。注意是hbase用户下的 ~/.ssh/authorized_keys 文件

做完上述动作后,可以使用如下命令验证免密登录是否设置成功,若登录过程不需要输入密码则已设置成功:

su - hbase
ssh master1

有必要在所有机器上都相互验证下。

4. 线程数与打开文件句柄数修改

Hbase会在同一时间使用很多的文件句柄.大多数linux系统使用的默认值1024是不能满足的。

编辑/etc/security/limits.conf:

* soft nofile 65535
* hard nofile 65535
* soft nproc 16384
* hard nproc 16384

若操作系统为centos6.5,还需编辑/etc/security/limits.d/90-nproc.conf:

*          soft    nproc     1024
root       soft    nproc     unlimited
hbase soft nproc 16384
hbase hard nproc 16384

除zk外的主机,请都完成上述设置。

5. 关闭防火墙

由于hbase的节点之间需要通信(RPC机制),这样一来就需要监听对应的端口,这里我就直接将防火墙关闭了,命令如下:

chkconfig  iptables off

6. 开启时钟同步

各个节点的时间如果不同步,会出现启动异常,或其他原因。

service ntpd start

7. 环境变量配置

export JAVA_HOME=/usr/lib/java
export HBASE_HOME=/home/hbase/hbase
export HADOOP_HOME=/home/hbase/hadoop  #配置hadoop变量,否则hbase不识别hdfs集群名
export HBASE_MANAGES_ZK=false   #不使用hbase自带的zookeeper,使用搭建的zk集群。
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
  1. 核心文件配置

将hbase-1.2.5-bin.tar.gz上传到/home/hbase下,并解压。拷贝hdfs节点上的hadoop安装目录到/home/hbase。

su - hbase && cd /home/hbase
tar -xzvf hbase-1.2.5-bin.tar.gz && ln -s hbase-1.2.5 hbase

`bash $HBASE_HOME/conf/hbase-site.xml

hbase.rootdirhdfs://cluster1/hbasehbase.cluster.distributedtruehbase.zookeeper.quorumzk1:2181,zk2:2181,zk3:2181


```bash $HBASE_HOME/conf/regionservers
region1
region2

将配置好的hbase与hadoop复制到其它节点;

scp -r hbase master2:~/
scp -r hbase region1:~/
scp -r hbase region2:~/

scp -r hadoop master2:~/
scp -r hadoop region1:~/
scp -r hadoop region2:~/
  1. 启动

登录到master1:

su - hbase
$HBASE_HOME/bin/start-hbase.sh # 此脚本会在master1上启动HMaster,region1与region2上启动HRegionServer

登录到master2:

su - hbase
$HBASE_HOME/bin/hbase-daemon.sh start master # 此脚本会在master2上启动HMaster

访问:http://192.168.1.10:16010


   转载规则


《高可用HBASE搭建》 Angus_Lu 采用 知识共享署名 4.0 国际许可协议 进行许可。
 上一篇
ES日志收集定期清理与备份 ES日志收集定期清理与备份
按天清理索引$ crontab -e ## 每日凌晨1点定时删除30天之前的`logstash-YYYY.MM.DD`索引 0 1 * * * /home/kibana/indexClean.sh es.zyouwei.com logst
2018-01-30 19:20:41
下一篇 
高可用HDFS搭建 高可用HDFS搭建
HDFS+HA架构图上图大致架构包括:利用共享存储来在两个NN间同步edits信息。以前的HDFS是share nothing but NN,现在NN又share storage,这样其实是转移了单点故障的位置,但中高端的存储设备内部都有各
2018-01-30 19:12:21
  目录