zookeeper是一个分布式调度的服务,可以感知服务并调度服务。 是apache旗下的一个产品。
文章目录
3.4.14版本有点过时了,这里使用3.5.8版本。
下载和使用
下载,我这里放在/data目录了(推荐使用bin.tar.gz版本,因为不会少包):
wget https://mirrors.bfsu.edu.cn/apache/zookeeper/zookeeper-3.5.8/apache-zookeeper-3.5.8-bin.tar.gz
解压:
tar -zxvf apache-zookeeper-3.5.8-bin.tar.gz
cd /data/apache-zookeeper-3.5.8-bin/conf
mv zoo_sample.cfg zoo.cfg
注: 建议用mv,因为cp虽然可以留备份,可能容易出错。
编辑zoo.cfg配置文件:
tickTime=2000 # 心跳时间
dataDir=/var/lib/zookeeper # 存储内存中的数据库快照,以及日志
clientPort=2181 # 客户端连接端口号
创建myid文件夹,并授权(这2步必要性待考证,但是建议加上):
# 创建myid文件夹
mkdir -p /var/lib/zookeeper/myid
# 授权
chmod -R 755 /var/lib/zookeeper/*
启动zookeeper:
/data/apache-zookeeper-3.5.8-bin/bin/zkServer.sh start
查看是否启动,有多种方法:
# 方法1 这种最简单,也好记忆
netstat -nltp | grep 2181
# 方法2 zookeeper自带查看状态的
/data/apache-zookeeper-3.5.8-bin/bin/zkServer.sh status
链接客户端:
/data/apache-zookeeper-3.5.8-bin/bin/zkCli.sh -server 127.0.0.1:2181
停止服务:
/data/apache-zookeeper-3.5.8-bin/bin/zkServer.sh stop
其他
报错
报错:Error: Could not find or load main class org.apache.zookeeper.server.quorum.QuorumPeerMain
这是因为包版本没有zookeeper.jar
解决方案:
1、下载低版本的zookeeper
2、如果一定要高版本的话,下载带bin.tar.gz版本的zookeeper。
报错: Opening socket connection to server VM-0-6-centos/127.0.0.1:2181. Will not attempt to authenticate using SASL (unknown error)
启动的时候报这个错,如何排查错误呢?
# start-foreground前端启动,可以直接看到启动的日志(非常有用)
/data/apache-zookeeper-3.5.8-bin/bin/zkServer.sh start-foreground
报错:binding to port 0.0.0.0/0.0.0.0:2181 Unexpected exception, exiting abnormally java.net.BindException: Address already in use
这个提示很明显,2181端口被占用。
可能是已经启动了,kill掉端口即可。
# 查看pid
netstat -nltp | grep 2181
# kill -9 进程id
报错org.apache.zookeeper.server.admin.AdminServer$AdminServerException: Problem starting AdminServer on address 0.0.0.0, port 8080 and command URL /commands
说明端口被占用,3.5以上版本新特性,启动的时候会用8080端口。
解决方案:
zoo.cfg 添加配置 admin.serverPort=9999
(推荐)
还有一种说法是 -Dzookeeper.admin.serverPort=9999 ,未实测,因为不知道zkServer.sh 后面怎么加参数。
官网文档
官网首页:
https://zookeeper.apache.org/
官网各版本下载页:
https://zookeeper.apache.org/releases.html
gettging started文档(这里以3.5.8为例):
https://zookeeper.apache.org/doc/r3.5.8/zookeeperStarted.html