本文主要是在Zookeeper单机的条件下,去部署配置集群的zookeeper,
单机模式的配置是在:
【https://blog.youkuaiyun.com/xiaozelulu/article/details/81211258】博客下完成。
自动容灾(自动故障转移):需要在HDFS部署环境中配置两个组件:
1.Zookeeper集群
2.ZKFC:zookeeper FailoverController process :
zookeeper是客户端
zookeeper集群模式
1.先在master机器上配置zookeeper的单机模式:【https://blog.youkuaiyun.com/xiaozelulu/article/details/81211258】
2.修改~/soft/zookeeper/zoo.cfg文件: (现在master主机上)
$>gedit zoo.cfg
修改:
a.[修改zoo.cfg文件]:
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/hyxy/tmp/zookeeper
clientPort=2181 //客户端提交的端口号
server.1=master:2888:3888 //服务端提交的端口号
server.2=slave1:2888:3888
server.3=slave2:2888:3888
三个节点都要改!
b.在/home/hyxy/tmp/zookeeper目录下,创建myid文件
$>echo "1" >> myid //在master节点
$>echo "2" >> myid //在slave1节点
$>echo "3" >> myid //在slave2节点
3.分发到其他节点上:slave1,slave2
$>scp -r zookeeper hyxy@slave1: ~/soft/
$>scp -r zookeeper hyxy@slave2: ~/soft /
4. 将master配置的 ~/.bash_profile 环境变量 ,分发至slave1,slave2
$>scp ~/.bash_profile hyxy@slave1:~/ .bash_profile
$>scp ~/.bash_profile hyxy@slave2:~/.bash_profile
5.第四步之后,需要 分别在slave1,slave2分别 使分发的环境变量生效,
$> source .bash_profile
测试:$> cd $ZOOKEEPER_HOME
6.修改配置文件:hdfs-site.xml 和 core-site.xml
【修改hdfs-site.xml】
<property>
<name>dfs.ha.automatic-failover.enabled</name>
<value>true</value> //是否自动容灾
</property>
【修改core-site.xml】
<property>
<name>ha.zookeeper.quorum</name>
<value>master:2181,slave1:2181,slave2:2181</value>
</property>
7.将配置文件分发至salve1,slave2节点上
slave1: $>scp hdfs-site.xml hyxy@slave1:~/soft/hadoop/etc/hadoop_cluster_ha/
$>scp core-site.xml hyxy@slave1:~/soft /hadoop/etc/hadoop_cluster_ha/
slave2: $>scp hdfs-site.xml hyxy@slave2:~/soft/hadoop/etc/hadoop_cluster_ha/
$>scp core-site.xml hyxy@slave2:~/soft /hadoop/etc/hadoop_cluster_ha/
注意:要保证三台机器的hadoop_cluster_ha、环境变量.bash_profile、 ~/soft/zookeeper/conf/zoo.cfg的文件等要一样!!!!
8.格式化zk
$>hdfs zkfc -formatZK
说明:将在Zookeeper的树状节点上注册一个Znode
9..确保zookeeper集群是开启状态:zkServer.sh start
$>jps
5458 QuorumPeerMain
10.start-dfs.sh
11.测试:
将active的节点kill掉,查看另一个节点状态(master:50070,slave:50070);会发现自动从standby 变成active活动状态,
说明自动容灾(故障自动转移)zookeeper配置成功。