zookeep集群至少需要三台才能实现高可用
安装JDK
- 三台都需要 10.11.19.1 10.11.19.6 10.11.19.7
# mkdir /usr/java
# tar xf jdk-8u221-linux-x64.tar.gz -C /usr/java
# ln -s /usr/java/jdk1.8.0_221 /usr/java/jdk
# vi /etc/profile
export JAVA_HOME=/usr/java/jdk
export PATH=$JAVA_HOME/bin:$JAVA_HOME/bin:$PATH
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar
# source /etc/profile
# java -version
java version "1.8.0_221"
Java(TM) SE Runtime Environment (build 1.8.0_221-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.221-b11, mixed mode)
安装zookeeper
- 三台都需要 10.11.19.1 10.11.19.6 10.11.19.7
cd /opt
wget https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.4.12/zookeeper-3.4.12.tar.gz
tar -xvf zookeeper-3.4.12.tar.gz
mkdir -p /data/zookeeper
mkdir -p /data/zookeeper/log
我的zookeeper配置
- 10.11.19.1 10.11.19.6 10.11.19.7
# cat /opt/zookeeper-3.4.12/conf/zoo.cfg
tickTime=2000
dataDir=/data/zookeeper
dataLogDir=/data/zookeeper/log
clientPort=2181
initLimit=5
syncLimit=2
maxClientCnxns=60
server.1=10.11.19.1:2888:3888
server.2=10.11.19.6:2888:3888
server.3=10.11.19.7:2888:3888
- 10.11.19.1
cat /data/zookeeper/myid
1
- 10.11.19.6
cat /data/zookeeper/myid
2
- 10.11.19.7
cat /data/zookeeper/myid
3
zookeeper启动
ansible zookeeper -m shell -a "/opt/zookeeper-3.4.12/bin/ start"
- 使用去检测zk状态
/opt/zookeeper-3.4.12/bin/
zk有三个端口,注意如果开了防火墙,要放行端口: 3个端口的作用 1、2181:对cline端提供服务 2、3888:选举leader使用 3、2888:集群内机器通讯使用(Leader监听此端口)
zookeeper停止
ansible zookeeper -m shell -a "/opt/zookeeper-3.4.12/bin/ stop"
为保证万一,把整个zk集群全部按照顺序重启了一遍 三个几点依次都用去连了一下,状态都是OK的 重新启动kafka,就OK啦
- 之前已有zookep集群了,这里可以参考 伪集群搭建
zookeeper 集群使用 Raft 选举模式,故至少要三个节点(生产中应部署在三个不同的服务器实例上,这里用于演示就不那么做了)。
# 复制三分节点配置
cp config/zookeeper.properties config/zookeeper.2181.properties
cp config/zookeeper.properties config/zookeeper.2182.properties
cp config/zookeeper.properties config/zookeeper.2183.properties
修改配置
config/zookeeper.2181.properties
# the directory where the snapshot is stored.
dataDir=/tmp/zookeeper/2181
# the port at which the clients will connect
clientPort=2181
# disable the per-ip limit on the number of connections since this is a non-production config
maxClientCnxns=0
tickTime=2000
initLimit=10
syncLimit=5
server.1=localhost:12888:13888
server.2=localhost:22888:23888
server.3=localhost:32888:33888
config/zookeeper.2182.properties 修改clientPort=2182 dataDir=/tmp/zookeeper/2182 其他一致
config/zookeeper.2183.properties 修改clientPort=2183 dataDir=/tmp/zookeeper/2183 其他一致
主要是修改服务端口clientPort和数据目录dataDir,其他参数表征如下:
tickTime=2000为zk的基本时间单元,毫秒
initLimit=10Leader-Follower初始通信时限(tickTime*10)
syncLimit=5Leader-Follower同步通信时限(tickTime*5)
server.实例集群标识=实例地址:数据通信端口:选举通信端口
为实例添加集群标识
echo 1 >> /tmp/zookeeper/2181/myid
echo 2 >> /tmp/zookeeper/2182/myid
echo 3 >> /tmp/zookeeper/2183/myid
启动集群服务
bin/ config/zookeeper.2181.properties
bin/ config/zookeeper.2182.properties
bin/ config/zookeeper.2183.properties
















