1. 安装Zookeeper
在Debian上安装Zookeeper有两种主要方式:通过APT包管理器(简单快捷,适合生产环境)或手动下载编译(适合需要特定版本的场景)。
zookeeper
包,系统会自动处理依赖(如Java):sudo apt update && sudo apt install zookeeper zookeeperd -y
/opt
目录并重命名:wget https://downloads.apache.org/zookeeper/zookeeper-3.8.0/apache-zookeeper-3.8.0-bin.tar.gz
tar -xzf apache-zookeeper-3.8.0-bin.tar.gz -C /opt
sudo mv /opt/apache-zookeeper-3.8.0-bin /opt/zookeeper
2. 配置Zookeeper
配置文件位于/etc/zookeeper/conf/zoo.cfg
(APT安装)或/opt/zookeeper/conf/zoo.cfg
(手动安装),需修改以下核心参数:
dataDir
,用于存储快照)、客户端端口(clientPort
,默认2181):dataDir=/var/lib/zookeeper
clientPort=2181
server.X
条目(X
为节点ID,对应dataDir
下的myid
文件内容):server.1=zoo1:2888:3888 # zoo1为节点主机名/IP,2888为Leader选举端口,3888为数据同步端口
server.2=zoo2:2888:3888
server.3=zoo3:2888:3888
dataDir
目录下创建myid
文件,写入对应节点ID(如节点1写1
):echo "1" | sudo tee /var/lib/zookeeper/myid
3. 启动与维护
/etc/systemd/system/zookeeper.service
:[Unit]
Description=Apache Zookeeper
After=network.target
[Service]
Type=forking
User=zookeeper
Group=zookeeper
ExecStart=/opt/zookeeper/bin/zkServer.sh start
ExecStop=/opt/zookeeper/bin/zkServer.sh stop
ExecReload=/opt/zookeeper/bin/zkServer.sh reload
Restart=always
[Install]
WantedBy=multi-user.target
加载服务并启动:sudo systemctl daemon-reload
sudo systemctl enable --now zookeeper
active (running)
表示正常):sudo systemctl status zookeeper
4. 性能优化
sudo swapoff -a
)或减少交换空间(sudo swapon --show
),调整JVM堆大小(-Xms4g -Xmx4g
,设置为物理内存的1/3)。tickTime
(心跳间隔,默认2000ms,可根据网络延迟修改)、initLimit
(初始化超时,默认5tickTime)、syncLimit
(同步超时,默认2tickTime);开启自动清理(autopurge.snapRetainCount=3
保留3个快照,autopurge.purgeInterval=1
每天清理一次)。5. 安全加固
jaas.conf
配置文件),设置ACL(访问控制列表)限制节点操作(如create
、write
权限)。ssl.keyStore
和ssl.trustStore
路径)。sudo ufw allow 2181/tcp
sudo ufw allow 2888/tcp
sudo ufw allow 3888/tcp
sudo ufw reload
6. 监控与运维
zkServer.sh status
查看节点状态,echo stat | nc localhost 2181
获取集群统计信息(如Leader节点、延迟)。zookeeper_exporter
采集指标)+ Grafana(可视化监控面板),或使用Zabbix、Datadog等工具。/var/log/zookeeper/zookeeper.log
(日志路径可通过log4j.properties
调整),使用ELK Stack(Elasticsearch+Logstash+Kibana)进行日志分析,快速定位异常。