个人笔记
SongPinru 的小仓库
安装
- 解压
- 把conf文件夹下配置文件改个名字
cp zoo_sample.cfg zoo.cfg
- 编辑zoo.cfg,配置datadir
dataDir=/opt/module/zookeeper-3.4.10/zkData
- 配置集群机器,每台机器分配一个不同的Serverid
tickTime=2000 dataDir=/opt/module/zookeeper-3.4.10/zkData clientPort=2181 initLimit=5 syncLimit=2 server.2=hadoop102:2888:3888 server.3=hadoop103:2888:3888 server.4=hadoop104:2888:3888 # 以上配置2,3,4就是Serverid
- 在zkData文件夹里新建一个myid文件,内容是本机的Serverid
- 配置Zookeeper的LogDIR:配置bin/zkEnv.sh文件
ZOO_LOG_DIR="."改为/opt/module/zookeeper-3.4.10/logs
- 分发,其他机器修改myid
- 启动zookeeper
bin/zkServer.sh start
群起脚本 ```bash #! /bin/bash
case $1 in “start”){ for i in hadoop102 hadoop103 hadoop104 do ssh $i “/opt/module/zookeeper-3.4.10/bin/zkServer.sh start” done };; “stop”){ for i in hadoop102 hadoop103 hadoop104 do ssh $i “/opt/module/zookeeper-3.4.10/bin/zkServer.sh stop” done };; “status”){ for i in hadoop102 hadoop103 hadoop104 do ssh $i “/opt/module/zookeeper-3.4.10/bin/zkServer.sh status” done };; esac ```
选举机制
半数机制:集群中半数以上机器存活,集群可用。所以Zookeeper适合安装奇数台服务器。
监听原理
zookeeper使用Watcher做监听
- ZooKeeper 构造方法:
- 全局监控,并且永久存在,每次zookeeper的改动都会通知
- getData、exists、getChildren :
- 对path做单次监控,想要一直监控需要在process中再次注册