一,安装:
环境要求: 需要的jdk环境,防火墙要开相应的端口或者关闭防火墙,
1下载压缩文件 zookeeper-3.4.13.tar.gz
2:解压:
tar zxvf zookeeper-3.4.13.tar.gz
将解压的文件移到项目的地方,这样就算是已经安装完成了
mv ./zookeeper-3.4.13 /usr/local/webserver/
远程服务器复制:
scp -r -P 22 root@服务器ip:/usr/local/webserver/zookeeper-3.4.13 /usr/local/webserver/
3:更改zoo.cfg的配置文件
将: zoo_zample.cfg更改为: zoo.cfg
修改zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/data/zookeeper/data
dataLogDir=/data/zookeeper/logs
maxClientCnxns=2000
clientPort=2181
注意:需要在对应的目录下创建dataDir和dataLogDir文件夹
配置文件到这里基本可以使用单机了,
下面是集群的时候,一般都建议集群为奇数3,5,7这样的集群叠加
#zoo.cfg增加集群时候使用(单机可以不使用):
server.1= host1:2281:2381
server.2= host2:2281:2381
server.3= host3:2281:2381
集群创建每个服务器的myid在dataDir的data里面并设置设置
//linux直接输入命令即可
//在host1上设置
echo "1" > /data/zookeeper/data/myid
//在host2上设置
echo "2" > /data/zookeeper/data/myid
//在host3上设置
echo "3" > /data/zookeeper/data/myid
4:启动
./bin/zkServer.sh start
./bin/zkServer.sh stop
./bin/zkServer.sh restart
查看状态: 特别说明一下:必须所有的集群zookeeper启动才能查看是否集群状态成功与否,不然可能会一直找不到原因(这里我也遇到排查了好一段时间)
./bin/zkServer.sh status
如果是以上状态;说明集群成功
启动之后查看状态出现的问题解决:
在集群的时候遇到的第一个问题:
Error contacting service. It is probably not running.
遇到这个问题百度了解一下,看不出什么问题,需要去看配置文件,才能知道具体错误是什么??
日志文件错误记录都在这个里面:一般都在bin目录同级里面:
上面的错误的第一个问题是拒绝连接:
问题是防火墙端口权限问题,ip端口权限占用等
容易犯错的点也有这个myid没有对应下面的值(切记)
解决以上问题之后,重新启动所有的服务器,还是出现那样的状态:
这次查看的日志错误是:java.net.BindException: Cannot assign requested address (Bind failed)
翻译过来就是:
java.net.BindException:无法分配请求的地址(绑定失败)
这个就是阿里服务器上的有点坑了,找了好久才发现的问题:原来问题所在
解决方法:
很简单,在每个Zookeeper节点上的zoo.cfg里面添加上
quorumListenOnAllIPs=true
解决的原因:可以参考:
特别感谢https://blog.csdn.net/XiyouLinux_Kangyijie/article/details/76704639这个文章的博客作者