1:集群安装
1.1:集群规划:在hadoop102、hadoop103、hadoop104三个节点上部署zookeeper
1.2:解压安装
1.2.1:在hadoop102解压zookeeper安装包到/opt/module目录下
[atguigu@hadoop102 software]$ tar zxvf apache zookeeper 3.5.7
bin.tar.gz C /opt/module/
1.2.2:apache-zookeeper-3.5.7-bin名称为 zookeeper-3.5.7
[atguigu@hadoop102 module]$ mv apache zookeeper 3.5.7 bin/
zookeeper 3.5.7
1.3:配置服务器编号
1.3.1:在/opt/module/zookeeper-3.5.7/这个目录下创建 zkData
[atguigu@hadoop102 zookeeper 3.5.7 mkdir zkData
1.3.2:在zkData中创建一个myid文件,hadoop102就配置2即可。是一个身份标识。
[atguigu@hadoop102 zkData vi myid
1.3.3:然后分发到其他服务器上
[atguigu@hadoop102 module xsync zookeeper 3.5.7
1.4:配置zoo.cfg
1.4.1:重命名 /opt/module/zookeeper-3.5.7/conf这个目录下的 zoo_sample.cfg为 zoo.cfg
[atguigu@hadoop102 conf mv zoo_sample.cfg zoo.cfg
1.4.2:打开zoo.cfg修改数据存储路径配置,并增加配置
dataDir=/opt/module/zookeeper 3.5.7 /zkData
#######################
server.2=hadoop102:2888:3888
server.3=hadoop103:2888:3888
server.4=hadoop104:2888:3888
1.4.3:配置参数解读
s erver.A=B:C:D 。
A是一个数字,表示这个是第几号服务器;就是myid里面的数值
集群模式下配置一个文件 myid 这个文件在 dataDir目录 下,这个文件里面有一个数据
就是 A的值, Zookeeper启动时读取此文件,拿到里面 的 数据与 zoo.cfg里面 的配置信息比
较从而判断到底是哪个 server。
B是这个服务器的地址;
C是这个服务器 Follower与集群中的 Leader服务器交换信息的端口;
D是 万一集群中的 Leader服务器挂了,需要一个端口来重新进行选举,选出一个新的
Leader,而这个端口就是用来执行选举时服务器相互通信的端口。
1.5:启动zookeeper
1.5.1:启动并且查看状态,注意一定要启动超过半数的服务器。
[atguigu @hadoop102 zookeeper 3.5.7 bin/zkServer.sh start 103、104也是如此
然后使用bin/zkServer.sh status查看状态
2:zookeeper的选举机制
2.1:第一次选举的机制
2.2:非第一次选举的机制
3:启动停止脚本
3.1:在hadoop102的 /home/atguigu/bin目录下创建脚本
[atguigu@hadoop102 bin]$ vim zk.sh
3.2:脚本文件内容
#!/bin/bash
case $1 in
"start"){
for i in hadoop102 hadoop103 hadoop104
do
echo zookeeper $i 启动
ssh $i "/opt/module/zookeeper-3.5.7/bin/zkServer.sh start"
done
}
;;
"stop"){
for i in hadoop102 hadoop103 hadoop104
do
echo zookeeper $i 停止
ssh $i "/opt/module/zookeeper-3.5.7/bin/zkServer.sh stop"
done
}
;;
"status"){
for i in hadoop102 hadoop103 hadoop104
do
echo zookeeper $i 状态
ssh $i "/opt/module/zookeeper-3.5.7/bin/zkServer.sh status"
done
}
;;
esac
3.3:增加脚本执行 权限
[atguigu@hadoop102 bin]$ chmod u+x zk.sh
3.4:Zookeeper集群 启动和停止脚本
[atguigu@hadoop102 module]$ zk.sh start/stop