zookeeper单点部署,请参考 zookeeper单节点部署-CSDN博客
1.修改 zookeeper 配置文件
cat > /app/tools/zk/conf/zoo.cfg <<'EOF'
# 定义最小单元的时间范围tick。ms
tickTime=2000
# 启动时最长等待tick数量,每次2000ms,超过5次则失败
initLimit=5
# 数据同步时最长等待的tick时间进行响应ACK,每次2000ms,超过2次则失败
syncLimit=2
# 指定数据目录
dataDir=/app/data/zk
# 监听端口
clientPort=2181
# 开启四字命令允许所有的节点访问。
4lw.commands.whitelist=*
# server.ID=A:B:C[:D]
# ID:
# zk的唯一编号。(可自定义)
# A:
# zk的主机地址。
# B:
# leader的选举端口,是谁leader角色,就会监听该端口。(可自定义)
# C:
# 数据通信端口。(可自定义)
# D:
# 可选配置,指定角色。
server.191=192.168.99.191:2888:3888
server.192=192.168.99.192:2888:3888
server.193=192.168.99.193:2888:3888
## Metrics Providers
#
# https://prometheus.io Metrics Exporter
#metricsProvider.className=org.apache.zookeeper.metrics.prometheus.PrometheusMetricsProvider
#metricsProvider.httpHost=0.0.0.0
#metricsProvider.httpPort=7000
#metricsProvider.exportJvmInfo=true
EOF
2.将配置文件拷贝到所有zookeeper节点
可以使用ansible、scp、shell脚本等各种方法
我这里使用shell脚本同步到其他zookeeper节点
1.#同步配置目录
[root@elk91 /app/tools/zk/conf]# sh data_rsync.sh /app/tools/apache-zookeeper-3.8.2-bin/
===== elk92: apache-zookeeper-3.8.2-bin =====
命令执行成功!
===== elk93: apache-zookeeper-3.8.2-bin =====
命令执行成功!
2.#同步环境变量文件
[root@elk91 /app/tools/zk/conf]# sh data_rsync.sh /etc/profile.d/zk.sh
===== elk92: zk.sh =====
命令执行成功!
===== elk93: zk.sh =====
命令执行成功!
3.创建myid文件
我使用的是for循环 ssh 命令,在各个节点上执行 echo 命令创建 myid 文件
for ((host_id=191;host_id<=193;host_id++))
do
ssh elk${host_id} "echo ${host_id} > /app/data/zk/myid"
done
4.启动 zookeeper 集群所有节点
在所有节点上执行
zkServer.sh start
也可以使用shell脚本执行
sh zookeeper_manager.sh start
5.查看 zookeeper 集群节点状态
在所有节点上执行
zkServer.sh status
也可以使用shell脚本执行
sh zookeeper_manager.sh status
leader 为 zookeeper 集群 主节点 也就是 master 节点
交流平台,
有不当,望指出
有建议,请提出