【zookeeper】zookeeper集群配置异常 Connection refused 和 myid file is missing

zookeeper集群配置错误:连接异常


  • zookeeper集群配置错误连接异常
    • 起因
    • 分析
      • 服务没有启动吗
      • 看看日志文件
      • 跟小哥学一下
      • 难道是权限的问题
      • 柳暗花明又一村
    • 结局
    • 警示后人


起因

在搭建zookeeper集群的时候,使用客户端连接的时候遇到了如下的异常:

org.apache.zookeeper.ClientCnxn$SendThread; Session 0x0 for server null, unexpected error, closing socket connection and attempting reconnect
java.net.ConnectException: 拒绝连接
    at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
    at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717)
    at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:361)
    at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1081)

随手百度了下,看到了这篇文章,好像原因莫名奇妙啊,哈哈哈:
坑爹的ZooKeeper的错误

所以我决定一探究竟。

分析

服务没有启动吗?

当看到拒绝连接的时候,我就怀疑是zookeeper服务没有启动,可是我明明执行过命令啊,而且提示STARTED。于是我去查看了zookeeper的状态:
这里写图片描述

奇怪啊,刚刚明明启动的,竟然没有运行,那么再开一次试试:
【zookeeper】zookeeper集群配置异常 Connection refused 和 myid file is missing_第1张图片
这是我刚刚启动后,查看的状态竟然是not running,醉了,很懵逼啊。

看看日志文件

于是我打算看一下日志文件:
【zookeeper】zookeeper集群配置异常 Connection refused 和 myid file is missing_第2张图片
收获不小,找到了异常的原因,都异常了,还提示我STARTED干嘛。。。

Caused by: java.lang.IllegalArgumentException: /usr/local/solr/solr-cloud/zookeeper01/data/myid file is missing

异常说我的data目录下的myid文件丢失了,我记得明明有的啊,让我去看看:
这里写图片描述
嗯嗯嗯,很棒,有文件有内容,至少证明我脑子没问题,而且我本来就是root用户啊,难道真的是玄学问题???
【zookeeper】zookeeper集群配置异常 Connection refused 和 myid file is missing_第3张图片

跟小哥学一下

我也象征性的启动一下吧:
【zookeeper】zookeeper集群配置异常 Connection refused 和 myid file is missing_第4张图片
看来我和上面的小哥不是一个问题。。。

难道是权限的问题

看来还要继续推测啊,文件明明在那里,为什么你看不到,啊,为什么???
最可能的问题就是文件的权限了,来,让我们看一下:
这里写图片描述
好像大家都可以读取到诶(+_+)?

难道还要写的权限,好,给你:
【zookeeper】zookeeper集群配置异常 Connection refused 和 myid file is missing_第5张图片
嗯,很气,很无可奈何,那么再给你权限吧,给你,什么都给你:
【zookeeper】zookeeper集群配置异常 Connection refused 和 myid file is missing_第6张图片
看来不是权限的问题。。。。。。。。
都给我拿回来。

柳暗花明又一村

走头无路,去Google上搜了下,发现大家不是没有这个文件,就是权限不够,或者是配置文件有问题,没找到和我类似的啊,很悲伤。没办法,继续吧。

可咋办啊,突然想复制异常中的路径看看到底咋回事,竟然真的不存在,我被我的智商折服了,pwd后,我陷入了沉思,我从哪里来,要到哪里去。。。。。。
这里写图片描述

真想打死半个小时之前因为solr-cloud在solr下不好看,从而把它 mv 走的自己,真是xx ( ఠൠఠ )。

结局

剧情一波三折,结局还是美好的,至少成功的运行了:
【zookeeper】zookeeper集群配置异常 Connection refused 和 myid file is missing_第7张图片

警示后人

过程真是哈哈哈,不过还是学到一点东西,总结一下,如果遇到这个问题的话:
1. 首先看看/bin/zookeeper.out 日志文件,看看报的什么错误;
2. 如果恰巧你也不幸地遇到了myid file is missing,那么第一时间去看你的conf/zoo.cfg配置文件中的dataDir路径是否是你想要配置的路径,是否和异常中的一样;
3. 如果一样的话,那么证明你真的没有myid这个文件,那么你就在你dataDir指定的路径下创建myid,然后写入id的值(1-255),只有一个数字剩下的啥也不要写;如果路径不一样,那就赶紧去改啊。
4. 当你dataDir配置正确了,并且也有了myid文件,但是还无法运行的时候,查看第5、6条;
5. 如果是Ubuntu用户的话,可能存在目录权限问题,你sudo运行一下试试;
6. 在搜索的过程中,也有人是因为防火墙导致的,所以查看一下你的防火墙,或者关闭它试试;
7. 如果上面还是解决不了你的问题,那么接下来靠你自己了,如果解决了告诉我一声,谢谢你。
8. 还有每天控制一下自己的强迫症,别瞎 mv;
9. 不要相信玄学,肯定可以解决的;
10. 自己作的死,慢慢会还的。

你可能感兴趣的:(zookeeper)