zookeeper 3.3.2 安装
zookeeper 3.3.2 安装1.下载zookeeper-3.3.2.tar.gz 安装包
2.tar -zvxf zookeeper-3.3.2.tar.gz 到指定目录
3.修改conf/zoo_sample.cfg 配置文件
将zoo_sample.cfg 的名字改为 zoo.cfg
mv zoo_sample.cfg zoo.cfg
4.配置zoo.cfg
如图:
dataLogDir=/server/logs 可根据此设置指定 log 文件的存放位置(我没有指定 默认存储在dataDir 里)
tickTime:Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,每隔 tickTime 时间就会发送一个心跳。
dataDir: Zookeeper 保存数据的目录,默认情况下Zookeeper 将写数据的日志文件也保存在这个目录里
clientPort:客户端连接 Zookeeper 服务器的端口,zokeeper 会监听这个端口,接受客户端的访问请求
initLimit:Zookeeper 接受客户端(这里所说的客户端不是用户连接 Zookeeper 服务器的客户端,而是 Zookeeper 服务器集群中连接到 Leader 的 Follower 服务器)
初始化连接时最长能忍受多少个心跳时间间隔数。当已经超过 10 个心跳的时间(也就是 tickTime)长度后 Zookeeper 服务器还没有收到客户端的返回信息,那么表明这个客户端连接失败。总的时间长度就是 5*2000=10 秒
syncLimit:Leader 与 Follower 之间发送消息,请求和应答时间长度,最长不能超过多少个 tickTime 的时间长度,总的时间长度就是 2*2000=4 秒
server.1=server0:2888:3888
server.1 这个数字1 代表这是第几号服务器,只是个标志服务器名字而已。server0 是这个服务器的ip地址
2888 这个端口代表服务器与集群中leader服务器交换信息的端口,3888表示万一集群中的leader down了
需要用这个端口来重新选举leader,而这个端口就是用来执行选举时服务器相互通信的端口
5.创建myid
在dataDir 目录下创建 myid 文件 文件里面的内容为单个数字,这个数字和服务器的标志是一样的
例如:
server.1=server0:2888:3888
则在server0这台服务器上的 myid文件的内容为 1 其他依次类推
myid的内容和该服务器对应的server.数字 后边的数字相同
6.启动/停止zookeeper
bin/zkServer.sh start
bin/zkServer.sh stop
查看集群的状态
bin/zkServer.sh status
7.安装中遇到的错误
在安装中遇到很奇怪的错误,在这里和大家分享下
每次运行 bin/zkServer.sh status 的时候总是报
# ./zkServer.sh status
JMX enabled by default
Using config: /data/zookeeper-3.3.2/bin/../conf/zoo.cfg
Error contacting service. It is probably not running.
但是看后台日志却没有任何问题,也选举出来了 leader 和follower (根据日志判断的)
此时可能是nc 工具的问题 --确认电脑里安装了nc(netcat)工具
去zkServer.sh 里找到 下面这句话
STAT=`echo stat | nc localhost $(grep clientPort "$ZOOCFG" | sed -e 's/.*=//') 2> /dev/null| grep Mode`
修改成
STAT=`echo stat | nc -q l localhost $(grep clientPort "$ZOOCFG" | sed -e 's/.*=//') 2> /dev/null| grep Mode`
在运行 则ok
如图:
leader:
follower:
页:
[1]