Zookeeper的主配置文件通常有两种常见路径(取决于安装方式):
/usr/local/zookeeper):配置文件位于$ZOOKEEPER_HOME/conf/zoo.cfg($ZOOKEEPER_HOME为Zookeeper安装根目录)。sudo yum install zookeeper-server):配置文件位于/etc/zookeeper/conf/zoo.cfg。使用文本编辑器(如vi、nano)打开zoo.cfg,调整以下关键参数以满足集群需求:
dataDir:指定Zookeeper数据存储目录(需提前创建,如/var/lib/zookeeper),用于保存事务日志和快照。clientPort:客户端连接的TCP端口,默认2181。tickTime:ZooKeeper的基本时间单位(毫秒),影响心跳和会话超时(如2000表示2秒)。server.N:定义集群节点,格式为server.X=主机IP:2888:3888(X为节点ID,2888用于Leader与Follower通信,3888用于Leader选举)。tickTime=2000
dataDir=/var/lib/zookeeper
clientPort=2181
initLimit=10 # Leader选举超时时间(tick为单位)
syncLimit=5 # Follower与Leader同步超时时间(tick为单位)
server.1=192.168.1.101:2888:3888
server.2=192.168.1.102:2888:3888
server.3=192.168.1.103:2888:3888
在dataDir指定的目录下,创建myid文件,内容为当前节点的ID(需与zoo.cfg中server.N的N一致)。例如:
# 进入数据目录
cd /var/lib/zookeeper
# 创建并写入节点ID(如节点1)
echo "1" > myid
注意:集群中每个节点的myid值必须唯一,且与zoo.cfg中的server.N对应。
为方便命令行操作,可将Zookeeper路径添加到系统环境变量中:
# 编辑环境变量文件
vi /etc/profile.d/zookeeper.sh
# 添加以下内容(根据实际安装路径调整)
export ZOOKEEPER_HOME=/usr/local/zookeeper
export PATH=$PATH:$ZOOKEEPER_HOME/bin
# 使环境变量生效
source /etc/profile.d/zookeeper.sh
之后可直接使用zkServer.sh、zkCli.sh等命令。
$ZOOKEEPER_HOME/bin/zkServer.sh start
/etc/systemd/system/zookeeper.service),内容如下:[Unit]
Description=Zookeeper Service
After=network.target
[Service]
Type=forking
ExecStart=$ZOOKEEPER_HOME/bin/zkServer.sh start
ExecStop=$ZOOKEEPER_HOME/bin/zkServer.sh stop
Environment=JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
User=zookeeper
Group=zookeeper
Restart=always
[Install]
WantedBy=multi-user.target
然后执行以下命令启用并启动服务:sudo systemctl daemon-reload
sudo systemctl enable zookeeper
sudo systemctl start zookeeper
sudo systemctl restart zookeeper # systemd方式
# 或
$ZOOKEEPER_HOME/bin/zkServer.sh restart # 脚本方式
sudo systemctl status zookeeper
# 或
$ZOOKEEPER_HOME/bin/zkServer.sh status
若显示“Mode: leader”(集群中)或“Mode: standalone”(单机模式),则表示配置成功。$ZOOKEEPER_HOME/bin/zkCli.sh -server 127.0.0.1:2181
连接成功后会显示Welcome to ZooKeeper提示符。定期备份zoo.cfg和dataDir目录,防止配置丢失:
# 备份配置文件
sudo tar -czvf /path/to/backup/zookeeper_conf_$(date +%F).tar.gz /etc/zookeeper/conf/zoo.cfg
# 备份数据目录
sudo tar -czvf /path/to/backup/zookeeper_data_$(date +%F).tar.gz /var/lib/zookeeper
建议将备份文件存储至异地或云存储,确保数据安全。
通过以上步骤,可在CentOS上完成Zookeeper配置文件的修改、应用及管理。需注意,集群模式下需确保所有节点的myid与zoo.cfg中的server.N一致,且网络互通。