Hadoop HA高可用集群
一、HA集群
HDFS HA集群 master\slave
YARN HA集群 master\slave
HA(High Available), 高可用性群集,是保证业务连续性的有效解决方案,避免了因为单点故障带来的风险,一般有两个或两个以上的节点,且分为活动节点及备用节点。通常把正在执行业务的称为活动节点,而作为活动节点的一个备份的则称为备用节点,各节点之间会传递心跳信息确认对方是否运行正常。当活动节点出现问题,导致正在运行的业务(任务)不能正常运行时,备用节点此时就会侦测到,并立即接续活动节点来执行业务。从而实现业务的不中断或短暂中断。
架构图
在HA集群中zookeeper 负责检测调动各个节点的运行和主备切换,HA中没有了SecondoryNameNode 取而代子的是一个StandbyNameNode 备机 在主机出现问题是进项切换 主备之间通过日志服务JournalNode 来进行日志同步保证数据一致
二、环境搭建
软件
- CentOS-6.5 64 bit
- jdk-8u181-linux-x64.rpm
- hadoop-2.6.0.tar.gz
- zookeeper-3.4.6.tar.gz
节点
node1 | node2 | node3 | |
---|---|---|---|
ActiveNameNode | Y | ||
StandbyNameNode | Y | ||
ResourceManager | Y | Y | |
DataNode | Y | Y | Y |
Zookeeper | Y | Y | Y |
JournalNode | Y | Y | Y |
ZkFailoverController | Y | Y | |
NodeManage | Y | Y | Y |
基础配置
- 修改主机名
vi /etc/hostname
# 修改主机名
node1
# 重启
reboot
- 主机名和IP映射关系
vi /etc/hosts
##########################
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.23.137 node1
192.168.23.138 node2
192.168.23.139 node3
- 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
- SSH免密登陆
# 生成秘钥公钥
[root@nodeX ~]# ssh-keygen -t rsa
#将秘钥公钥交给各个节点
[root@nodeX ~]# ssh-copy-id node1
[root@nodeX ~]# ssh-copy-id node2
[root@nodeX ~]# ssh-copy-id node3
- 同步时钟
[root@nodeX ~]# date -s '2018-12-1 20:06:00'
2018年 12月 01日 星期六 20:06:00 CST
[root@nodeX ~]# clock -w
[root@nodeX ~]# date
2018年 12月 01日 星期六 20:06:09 CST
- 安装JDK并配置环境变量
[root@nodeX ~]# rpm -ivh jdk-8u181-linux-x64.rpm
[root@nodeX ~]# vi .bashrc
JAVA_HOME=/usr/java/latest
CLASSPATH=.
PATH=$PATH:$JAVA_HOME/bin
export JAVA_HOME
export CLASSPATH
export PATH
[root@nodeX ~]# source .bashrc
- 安装ZooKeeper集群并启动
[root@nodeX ~]# tar -zxf zookeeper-3.4.6.tar.gz -C /usr/
[root@nodeX ~]# vi /usr/zookeeper-3.4.6/conf/zoo.cfg
tickTime=2000
dataDir=/root/zkdata
clientPort=2181
initLimit=5
syncLimit=2
server.1=node1:2887:3887
server