《ZooKeeper 安装与基本使用》
ZooKeeper 是 Apache 开源的分布式协调服务,常用于配置管理、命名服务、分布式锁与集群选主。
1 项目与文档
- 项目地址:https://github.com/apache/zookeeper
- 初级教程:https://zookeeper.apache.org/doc/current/zookeeperStarted.html
- 开发者教程:https://zookeeper.apache.org/doc/current/zookeeperProgrammers.html
- 基础 Demo:https://zookeeper.apache.org/doc/current/zookeeperTutorial.html
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 常见问题
-
Error: Could not find or load main class org.apache.zookeeper.server.quorum.QuorumPeerMain
原因:下载的文件不对。应以
apache-zookeeper-${version}-bin.tar.gz(bin 包)为准,而非源码包。 -
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 &
阅读 —
·
全站 —