首先是zookeeper下载,打开网站选择对应版本下载(一定要下载编译后的)

https://mirrors.bit.edu.cn/apache/zookeeper/

上传服务器,解压到对应目录opt下

tar -xvf apache-zookeeper-3.7.0-bin.tar.gz -C /opt

#移到配置目录
cd /opt/apache-zookeeper-3.7.0/conf
 
#复制配置文件
cp zoo_sample.cfg zoo.cfg


创建存储目录
mkdir -p /opt/apache-zookeeper-3.7.0/zoodata

#修改配置文件zoo.cfg

#dataDir:配置存储快照文件的目录。
dataDir=/opt/apache-zookeeper-3.7.0/zoodata

#zookeeper的新版中用了netty做为了内嵌的控制台服务,默认端口是8080
admin.serverPort=8091

#server.X=A:B:C 其中X是一个数字,表示这是第几号server,
#A是该server所在的IP地址,
#B配置该server和集群中的leader交换消息所使用的端口,
#C配置选举leader时所使用的端口。
server.0=127.0.0.1:2888:3888
#配置说明
tickTime:客户端会话超时时间,默认2000毫秒。

initLimit:配置客户端初始化可接受多少个心跳监测,默认10,即10*tickTime(默认2000),表示20s没有连接上集群的配置则连接失败。

syncLimit:配置Leader和follwer之间,允许多少个请求应答长度,默认5,即5*tickTime(默认2000),表示默认10sLeader和Follwer之间如果消息5次没有发送成功就不尝试了。

dataDir:配置存储快照文件的目录。

dataLogDir:配置事务日志存储的目录。

clientPort:服务默认端口,默认2181。

server.X=A:B:C 其中X是一个数字,表示这是第几号server,A是该server所在的IP地址,B配置该server和集群中的leader交换消息所使用的端口,C配置选举leader时所使用的端口。

启动zookeeper

cd /opt/apache-zookeeper-3.7.0/bin

./zkServer.sh start

#重启
./zkServer.sh restart
#关闭
./zkServer.sh stop
#查看状态
./zkServer.sh staus
#启动的时候,查看后台信息
./zkServer.sh start-foreground &

安装常见问题:

1. Could not find or Load main class org.apache.zookeeper.server.quorum.QuorumPeerMain

  下载安装包不是编译后的

 

2. Unable to start AdminServer,existing abnormally

zookeeper的新版中用了netty做为了内嵌的控制台服务,默认端口是8080。

通过查看zookeeper的官方文档,发现有3种解决途径:

(1).删除jetty。

(2)修改端口。

       修改方法的方法有两种,一种是在启动脚本中增加 -Dzookeeper.admin.serverPort=你的端口号,一种是在zoo.cfg中增加admin.serverPort=没有被占用的端口号

(3)停用这个服务,在启动脚本中增加"-Dzookeeper.admin.enableServer=false"