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)进行日志分析,快速定位异常。