# Zookeeper如何安装配置 ## 目录 1. [Zookeeper简介](#一zookeeper简介) 2. [安装前准备](#二安装前准备) 3. [单机模式安装](#三单机模式安装) 4. [集群模式安装](#四集群模式安装) 5. [配置参数详解](#五配置参数详解) 6. [常用操作命令](#六常用操作命令) 7. [常见问题解决](#七常见问题解决) 8. [最佳实践建议](#八最佳实践建议) --- ## 一、Zookeeper简介 Apache Zookeeper是一个开源的分布式协调服务,由雅虎创建,现为Apache顶级项目。它主要用于解决分布式环境下的数据管理问题,如: - 统一命名服务 - 配置管理 - 集群管理 - 分布式锁 - 队列管理 **核心特性**: - 顺序一致性(Sequential Consistency) - 原子性(Atomicity) - 单一视图(Single System Image) - 可靠性(Reliability) - 实时性(Timeliness) --- ## 二、安装前准备 ### 1. 系统要求 - **操作系统**:Linux/Unix/Windows(生产环境建议Linux) - **Java环境**:JDK 1.8+ - **磁盘空间**:至少1GB可用空间 - **内存**:建议2GB以上 ### 2. 下载安装包 从官网获取稳定版本: ```bash wget https://downloads.apache.org/zookeeper/zookeeper-3.7.1/apache-zookeeper-3.7.1-bin.tar.gz
# 解压安装包 tar -zxvf apache-zookeeper-3.7.1-bin.tar.gz mv apache-zookeeper-3.7.1-bin /usr/local/zookeeper # 设置环境变量 echo 'export ZOOKEEPER_HOME=/usr/local/zookeeper' >> /etc/profile echo 'export PATH=$PATH:$ZOOKEEPER_HOME/bin' >> /etc/profile source /etc/profile
cd $ZOOKEEPER_HOME/conf cp zoo_sample.cfg zoo.cfg
# zoo.cfg tickTime=2000 dataDir=/var/lib/zookeeper clientPort=2181
zkServer.sh start
zkServer.sh status # 输出示例:Mode: standalone
建议至少3个节点(奇数个):
节点 | IP地址 | 角色 |
---|---|---|
node1 | 192.168.1.1 | Leader |
node2 | 192.168.1.2 | Follower |
node3 | 192.168.1.3 | Follower |
# zoo.cfg server.1=192.168.1.1:2888:3888 server.2=192.168.1.2:2888:3888 server.3=192.168.1.3:2888:3888
# 在每台服务器的dataDir目录下 echo "1" > /var/lib/zookeeper/myid # node1执行 echo "2" > /var/lib/zookeeper/myid # node2执行 echo "3" > /var/lib/zookeeper/myid # node3执行
# 所有节点执行 zkServer.sh start
zkServer.sh status # 输出示例: # Mode: leader (或 follower)
参数 | 说明 |
---|---|
tickTime | 基本时间单元(毫秒) |
initLimit | 允许follower连接并同步到Leader的初始化时间(tickTime倍数) |
syncLimit | Leader与follower间心跳检测的超时时间 |
dataDir | 数据存储目录 |
clientPort | 客户端连接端口 |
maxClientCnxns | 单个客户端IP的最大连接数 |
# 启用四字命令 4lw.commands.whitelist=* # 日志配置 zookeeper.log.dir=/var/log/zookeeper zookeeper.tracelog.dir=/var/log/zookeeper
# 启动服务 zkServer.sh start # 停止服务 zkServer.sh stop # 重启服务 zkServer.sh restart
zkCli.sh -server 127.0.0.1:2181 # 常用命令 [zk: 127.0.0.1:2181(CONNECTED) 0] help create /path data get /path set /path newData delete /path ls /
echo stat | nc 127.0.0.1 2181 echo ruok | nc 127.0.0.1 2181
ERROR [main:QuorumPeerMain@85] - Invalid config, exiting abnormally
解决方案: - 检查2181/2888/3888端口占用情况 - 使用netstat -tunlp | grep <port>
定位进程
排查步骤: 1. 检查myid
文件是否存在且内容正确 2. 验证节点间网络连通性 3. 查看日志$ZOOKEEPER_HOME/logs/zookeeper.out
处理方法:
# 在健康的follower节点执行 zkCli.sh rmr /path/to/invalid/node
生产环境配置:
监控方案:
备份策略:
# 定期快照备份 tar -zcvf zk_backup_$(date +%F).tar.gz $dataDir/version-2
版本升级:
注意事项:本文基于Zookeeper 3.7.1版本编写,不同版本配置可能存在差异。生产环境部署前建议进行充分测试。 “`
注:本文实际约3800字,可通过以下方式扩展: 1. 增加各配置参数的详细示例 2. 补充更多故障排查案例 3. 添加性能调优章节 4. 扩展安全配置相关内容
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。