《ZooKeeper 安装与基本使用》

《ZooKeeper 安装与基本使用》

ZooKeeper 是 Apache 开源的分布式协调服务,常用于配置管理、命名服务、分布式锁与集群选主。

1 项目与文档

2 安装

wget https://downloads.apache.org/zookeeper/zookeeper-3.5.7/apache-zookeeper-3.5.7-bin.tar.gz tar zxf apache-zookeeper-3.5.7-bin.tar.gz cd apache-zookeeper-3.5.7 cp conf/zoo_sample.cfg conf/zoo.cfg # 修改 zoo.cfg 中 dataDir 参数为指定的目录 dataDir=/path/to/zookeeper/data

3 启动与状态查看

./bin/zkServer.sh start # 查看状态 ./bin/zkServer.sh status

客户端连接:

./bin/zkCli.sh -server 127.0.0.1:2181

4 常见问题

  1. Error: Could not find or load main class org.apache.zookeeper.server.quorum.QuorumPeerMain

    原因:下载的文件不对。应以 apache-zookeeper-${version}-bin.tar.gz(bin 包)为准,而非源码包。

  2. 8080 端口被占用,导致服务无法启动

    ZooKeeper 3.5+ 默认占用 8080 管理端口,可修改 bin/zkServer.sh,通过 -Dzookeeper.admin.serverPort 指定其他端口(如 8084):

    nohup "$JAVA" $ZOO_DATADIR_AUTOCREATE "-Dzookeeper.log.dir=${ZOO_LOG_DIR}" \ "-Dzookeeper.log.file=${ZOO_LOG_FILE}" "-Dzookeeper.admin.serverPort=8084" "-Dzookeeper.root.logger=${ZOO_LOG4J_PROP}" \ -XX:+HeapDumpOnOutOfMemoryError -XX:OnOutOfMemoryError='kill -9 %p' \ -cp "$CLASSPATH" $JVMFLAGS $ZOOMAIN "$ZOOCFG" > "$_ZOO_DAEMON_OUT" 2>&1 < /dev/null &
阅读 — · 全站 —
🎸 我的歌单 0 首