zooKeeper集群搭建

一、单节点搭建

bash 复制代码
dataDir=/tmp/zookeeper: 这一行指定了ZooKeeper数据和日志文件存储的目录。/tmp/zookeeper是ZooKeeper将保存其事务日志和快照的位置。
clientPort=2181: 定义了客户端连接到ZooKeeper服务器的端口,默认情况下,ZooKeeper监听在2181端口上接收客户端请求。
maxClientCnxns=0: 设置了每个IP地址允许的最大客户端连接数。设置为0表示禁用此限制,即不限制每个IP地址的连接数。在非生产环境中通常这样设置以避免不必要的限制。
admin.enableServer=false: 控制是否启用ZooKeeper的管理界面(admin server)。默认情况下它是禁用的,以避免与其他服务的端口冲突。如果需要使用管理界面,可以将其设置为true。
# admin.serverPort=8080: 这是一行被注释掉的配置,用于指定ZooKeeper管理界面监听的端口号。如果admin.enableServer被设置为true,则可以取消注释并设置一个合适的端口号,例如8080,来启动管理界面。

启动

bash 复制代码
./zookeeper-server-start.sh ../config/zookeeper.properties

nohup ./zookeeper-server-start.sh ../config/zookeeper.properties &

检查启动状态

./zookeeper-shell.sh localhost:2181

二、集群启动

bash 复制代码
tickTime=2000
dataDir=/root/kafka_2.12-3.7.1/data
clientPort=2181
initLimit=10
syncLimit=5
server.1=192.168.43.185:2888:3888
server.2=192.168.43.50:2888:3888
server.3=192.168.43.63:2888:3888

tickTime: ZooKeeper 中使用的基本时间单位(以毫秒为单位),如心跳间隔。

dataDir: 数据文件的目录。

clientPort: 客户端连接到 ZooKeeper 服务器的端口。

initLimit: 在启动时,用于领导选举的时间(tick 数量)。

syncLimit: 用于同步跟随者与领导者的时间(tick 数量)。

server.X: 每个 ZooKeeper 实例的服务器列表。格式为 server.X=hostname:peerPort:leaderElectionPort,其中 X 是服务器编号(从 1 开始),hostname 是服务器的主机名或 IP 地址,peerPort 用于实例间通信,leaderElectionPort 用于领导选举通信。

myid 文件

每个 ZooKeeper 服务器还需要一个 myid 文件,该文件位于 dataDir 目录下,文件内容为该服务器的唯一编号。例如,对于上面的配置:

Server 1:

bash 复制代码
echo "1" > /root/kafka_2.12-3.7.1/data/myid

Server 2:

bash 复制代码
echo "2" > /root/kafka_2.12-3.7.1/data/myid

Server 3:

bash 复制代码
echo "3" > /root/kafka_2.12-3.7.1/data/myid

分别在每台服务器上启动 ZooKeeper 实例:

bash 复制代码
Server 1:
nohup ./zookeeper-server-start.sh ../config/zookeeper.properties &
Server 2:
nohup ./zookeeper-server-start.sh ../config/zookeeper.properties &
Server 3:
nohup ./zookeeper-server-start.sh ../config/zookeeper.properties &
bash 复制代码
使用 zkCli.sh 连接到任意一个 ZooKeeper 实例,执行以下命令查看集群状态:

./zookeeper-shell.sh   192.168.43.185:2181
连接后,可以执行命令 stat 来查看集群状态:

stat
相关推荐
江畔何人初1 小时前
pod的内部结构
linux·运维·云原生·容器·kubernetes
TTBIGDATA4 小时前
【Atlas】Atlas Hook 消费 Kafka 报错:GroupAuthorizationException
hadoop·分布式·kafka·ambari·hdp·linq·ranger
腾讯云开发者4 小时前
言出法随 -- Chaterm如何通过ASR精准操作K8S
云原生·容器·kubernetes
m0_687399846 小时前
telnet localhost 15672 RabbitMQ “Connection refused“ 错误表示目标主机拒绝了连接请求。
分布式·rabbitmq
陌上丨6 小时前
生产环境分布式锁的常见问题和解决方案有哪些?
分布式
新新学长搞科研6 小时前
【智慧城市专题IEEE会议】第六届物联网与智慧城市国际学术会议(IoTSC 2026)
人工智能·分布式·科技·物联网·云计算·智慧城市·学术会议
泡泡以安7 小时前
Scrapy分布式爬虫调度器架构设计说明
分布式·爬虫·scrapy·调度器
为什么不问问神奇的海螺呢丶8 小时前
n9e categraf k8s监控配置 -cadvisor
云原生·容器·kubernetes
炸裂狸花猫8 小时前
开源域名代理与流量限制方案 - Cloudflare + Ingress + 自签名证书
运维·云原生·容器·kubernetes·cloudflare·waf·免费域名证书
没有bug.的程序员8 小时前
RocketMQ 与 Kafka 深度对垒:分布式消息引擎内核、事务金融级实战与高可用演进指南
java·分布式·kafka·rocketmq·分布式消息·引擎内核·事务金融