温馨提示×

Zookeeper数据目录在CentOS上怎么配置

小樊
43
2025-12-09 21:59:30
栏目: 智能运维

在 CentOS 上配置 Zookeeper 数据目录

一、准备与规划

  • 选择持久且空间充足的目录,例如:/var/lib/zookeeper;避免使用 /tmp
  • 建议将事务日志与快照分离,新增 dataLogDir(如:/var/log/zookeeper),可显著提升性能与可维护性。
  • 确认运行用户(常见为 zookeeper),并提前规划好目录权限与磁盘挂载(如独立磁盘或 LVM 卷)。

二、配置步骤

  1. 停止服务(若已运行)
    • 使用系统服务:sudo systemctl stop zookeeper
    • 或使用脚本:/opt/zookeeper/bin/zkServer.sh stop
  2. 创建目录
    • 数据目录:sudo mkdir -p /var/lib/zookeeper
    • 事务日志目录:sudo mkdir -p /var/log/zookeeper
  3. 设置属主属组(以运行用户为 zookeeper 为例)
    • sudo chown -R zookeeper:zookeeper /var/lib/zookeeper
    • sudo chown -R zookeeper:zookeeper /var/log/zookeeper
  4. 修改配置文件 zoo.cfg
    • 常见路径:/etc/zookeeper/conf/zoo.cfg 或 $ZOOKEEPER_HOME/conf/zoo.cfg
    • 关键参数:
      • dataDir=/var/lib/zookeeper
      • dataLogDir=/var/log/zookeeper(强烈建议配置)
      • clientPort=2181
  5. 启动服务
    • 系统服务:sudo systemctl start zookeeper
    • 脚本:/opt/zookeeper/bin/zkServer.sh start
  6. 验证
    • 服务状态:sudo systemctl status zookeeper
    • 四字命令健康检查:echo ruok | nc localhost 2181(返回 imok 表示正常)

三、集群节点补充

  • dataDir 下为每个节点创建 myid 文件,内容为唯一 server.xx
    • 节点1:echo “1” > /var/lib/zookeeper/myid
    • 节点2:echo “2” > /var/lib/zookeeper/myid
    • 节点3:echo “3” > /var/lib/zookeeper/myid
  • zoo.cfg 中配置集群成员:
    • server.1=192.168.0.1:2888:3888
    • server.2=192.168.0.2:2888:3888
    • server.3=192.168.0.3:2888:3888
  • 注意:各节点的 myid 必须与其 server.xx 一致。

四、安全与运维要点

  • SELinux:若启用,需为数据目录设置正确的 SELinux 上下文(如 zookeeper_var_lib_t),或临时设为宽松模式测试:sudo setenforce 0(生产不建议长期关闭)。
  • 防火墙:开放客户端端口(默认 2181/tcp
    • sudo firewall-cmd --zone=public --add-port=2181/tcp --permanent
    • sudo firewall-cmd --reload
  • 清理策略:开启自动清理,避免磁盘被快照与事务日志撑满
    • autopurge.snapRetainCount=10
    • autopurge.purgeInterval=48(单位:小时)
  • 权限与属主:确保运行用户对 dataDirdataLogDir 具备读写权限;目录路径避免使用 /tmp

0