Zookeeper启动后,有时候没有真正的启动,那我们如何查找错误呢,就可以查看zookeeper目录下面的zookeeper.out文件,就可以查看到错误了。zookeeper.out文件比较的重要,对于错误的排查,是必不可少的,还有服务器上,如果连接不通,有可能是防火墙的问题
搭建的时候,数据存储的目录结构,每一个zookeeper里面,需要有logs(日志存储)和data(数据存储)目录、myid文件都是在data目录下面的。
My id 333 not in the peer list
这个问题的产生是因为服务的id,也就是myid里面配置的,服务的id,需要和zoo.cfg配置文件一致,不然报错
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
#数据存储位置
dataDir=/tmp/zookeeper1/data
#日志文件
dataLogDir=/tmp/zookeeper1/logs
# the port at which the clients will connect
clientPort=2181
#server.NUM=IP:port1:port2 NUM表示本机为第几号服务器;IP为本机ip地址;
#port1为leader与follower通信端口;port2为参与竞选leader的通信端口
#多个实例的端口配置不能重复
server.1=127.0.0.1:2222:2225
server.2=127.0.0.1:3333:3335
server.3=127.0.0.1:4444:4445
server.A=B:C:D:其中 A 是一个数字,就是myid里的那个数字,表示这个是第几号服务器;B 是这个服务器的 ip 地址,C和D是两个端口。
配置文件 myid文件配置有问题和zoo.cfg不统一导致的
Caused by: java.lang.IllegalArgumentException: /usr/local/zookeeper/zookeeper-3.4.10/data/data/myid file is missing
出现这个问题的原因是,myid文件配置有问题,所导致的,可能是路径不对,也有可能是文件没有,需要在自己的data目录下创建一个myid的文件,里面的编号需要和自己定义的路径配置好
Cannot open channel to 1 at election address /127.0.0.1:2225
导致这个问题的原因是,没有完全启动所有的zookeeper节点所导致的问题,所有节点都启动,就不会有这个问题了
#获取zookeeper启动信息
cat zookeeper.out
只有部分节点在集群中
在启动的集群中,只有 2、3两个节点在集群中,但是1节点却是standalone
#查看节点信息
zkServer.sh status
可能导致这个问题的原因是端口占用
#查看端口
netstat -lnp|grep 2181
#杀死进程 ,然后重启zookeeper就好了
kill 进程号