【Hadoop】ZooKeeper集群搭建中的Connection refused而导致的启动失败

本文主要是介绍【Hadoop】ZooKeeper集群搭建中的Connection refused而导致的启动失败,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

       

1. 前言

每一次搭建集群环境都像一次战斗,作战中任何一个细节的出错都会导致严重的后果,所以搭建中所需要做的配置如系统配置、网络配置(防火墙记得关)、用户权限、文件权限还有配置文件等等内容,都必须非常仔细,将失误扼杀在摇篮之中,避免因为粗心或者想要提高速度省下的一分钟,在后面付出几个小时的调试时间,因小失大实在不值,切记核对、核对再核对

今天就来说说在搭建ZooKeeper集群遇到的一个常见的问题Connection refused,也就是网上很多朋友也会出现的问题,问题的表现也许是一样,但是导致问题的原因却不尽相同,所以要重视自己的log文件报的错误,再确认外部大环境没有的情况下,集中力量解决log中的错误。

2. 我的问题

下面是我在搭建集群时报的错:

这是表面上错误
2016-12-08 05:11:07,890 [myid:1] - WARN  [QuorumPeer[myid=1]/0:0:0:0:0:0:0:0:2181:QuorumCnxManager@382] - Cannot open channel to 5 at election address lzx15/192.168.80.175:3888
java.net.ConnectException: Connection refusedat java.net.PlainSocketImpl.socketConnect(Native Method)at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)at java.net.Socket.connect(Socket.java:579)at org.apache.zookeeper.server.quorum.QuorumCnxManager.connectOne(QuorumCnxManager.java:368)at org.apache.zookeeper.server.quorum.QuorumCnxManager.connectAll(QuorumCnxManager.java:402)at org.apache.zookeeper.server.quorum.FastLeaderElection.lookForLeader(FastLeaderElection.java:840)at org.apache.zookeeper.server.quorum.QuorumPeer.run(QuorumPeer.java:762)at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)at java.net.Socket.connect(Socket.java:579)at org.apache.zookeeper.server.quorum.QuorumCnxManager.connectOne(QuorumCnxManager.java:368)at org.apache.zookeeper.server.quorum.QuorumCnxManager.connectAll(QuorumCnxManager.java:402)at org.apache.zookeeper.server.quorum.FastLeaderElection.lookForLeader(FastLeaderElection.java:840)at org.apache.zookeeper.server.quorum.QuorumPeer.run(QuorumPeer.java:762
 

这是实际上的错误
java.io.FileNotFoundException: /home/hadoop/data/zookeeper/zkdata/version-2/acceptedEpoch.tmp(Permissoin denied)


 

3. 其他人的解决方案:

主要为以下两点:

1)防火墙没关导致通讯失败,无法连接到其他节点上,我在反复检查之后确认防火墙已全部关闭,所以这个方法对我的问题无效

命令行:chkconfig iptables off (关闭防火墙)

    service iptables status(查看防火墙状态)

2)配置文件问题

  a. /zookeeper/conf/zoo.cfg文件配置问题

  例如dataDir格式不对,或者没有创建dataDir指定的文件等等,所以细心地检查你的配置文件,至于这个文件的内容请大家自行百度。

  b. dataDir指定的目录下创建myid文件,然后再文件写上你在zoo.cfg中该节点的对应server号,例如server.1,那么myid中就写1。

 再次反复检查,也没有发现错误,无效。

4. 我的解决方案  

找到zookeeper的log文件zookeeper.out在哪里?正常的路径是 你的zookeper安装目录/zookeeper.out,我在这个zookeeper.out只能找到那个表面的错误即Connection refused,所以一直找不到问题,最后我在无意中发现

[hadoop@lzx11 hadoop]$ cd /home/hadoop
[hadoop@lzx11 ~]$ ls
app  data  tools  zookeeper.out

我在这个zookeeper.out中找到我问题的真实错误,/home/hadoop/data/zookeeper/zkdata/version-2/acceptedEpoch.tmp(Permissoin denied),所以我去查看了verison-2文件夹的权限,发现他居然是root用户的,我立刻把它转到hadoop用户下,然后再重新启动集群,三个节点启动成功。

  5. 总结

  很多时候我们都会去针对遇到的表面问题来寻找解决思路,但是很多问题只是因为其他地方出了问题导致的,所以在你认为找到解决目前这个问题的方法后却仍然没有能解决问题的时候,想想会不会在前面某个地方出错,去别的地方找找答案,记住,钥匙一般不在锁里面。


这篇关于【Hadoop】ZooKeeper集群搭建中的Connection refused而导致的启动失败的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1070223

相关文章

一份LLM资源清单围观技术大佬的日常;手把手教你在美国搭建「百万卡」AI数据中心;为啥大模型做不好简单的数学计算? | ShowMeAI日报

👀日报&周刊合集 | 🎡ShowMeAI官网 | 🧡 点赞关注评论拜托啦! 1. 为啥大模型做不好简单的数学计算?从大模型高考数学成绩不及格说起 司南评测体系 OpenCompass 选取 7 个大模型 (6 个开源模型+ GPT-4o),组织参与了 2024 年高考「新课标I卷」的语文、数学、英语考试,然后由经验丰富的判卷老师评判得分。 结果如上图所

问题-windows-VPN不正确关闭导致网页打不开

为什么会发生这类事情呢? 主要原因是关机之前vpn没有关掉导致的。 至于为什么没关掉vpn会导致网页打不开,我猜测是因为vpn建立的链接没被更改。 正确关掉vpn的时候,会把ip链接断掉,如果你不正确关掉,ip链接没有断掉,此时你vpn又是没启动的,没有域名解析,所以就打不开网站。 你可以在打不开网页的时候,把vpn打开,你会发现网络又可以登录了。 方法一 注意:方法一虽然方便,但是可能会有

加载资源文件失败

背景         自己以前装了一个海康的深度学习算法平台,试用期是一个月,过了一个月之后,因为没有有效注册码或者加密狗的支持了导致无法使用,于是打算卸载掉,在卸载一个软件的时候,无论是使用控制面板还是软件自带的卸载功能,总是卸载不掉,提示“加载资源文件失败”。该软体主要包括以下两部分: 用自带卸载功能卸载的时候分别提示如下:     用控制面板卸载的时候反应很慢,最后也是提示这个

yum install 失败报错`XZ_5.1.2alpha' not found (required by /lib64/librpmio.so.3)

/export/env/py3.6/lib/liblzma.so.5: version `XZ_5.1.2alpha' not found (required by /lib64/librpmio.so.3)   到/export/env/py3.6/lib cp /lib64/liblzma.so.5.2.2 . sudo ln -s -f liblzma.so.5.2.2 liblzm

【网络安全的神秘世界】搭建dvwa靶场

🌝博客主页:泥菩萨 💖专栏:Linux探索之旅 | 网络安全的神秘世界 | 专接本 | 每天学会一个渗透测试工具 下载DVWA https://github.com/digininja/DVWA/blob/master/README.zh.md 安装DVWA 安装phpstudy https://editor.csdn.net/md/?articleId=1399043

Docker启动异常

报错信息: failed to start daemon: Error initializing network controller: error creating default "bridge" network: cannot create network b8fd8c684f0ba865d4a13d36e5282fd694bbd37b243c7ec6c9cd29416db98d4b (d

BD错误集锦3——ERROR: Can't get master address from ZooKeeper; znode data == null

hbase集群没启动,傻子!   启动集群 [s233 s234 s235]启动zk集群 $>zkServer.sh start $>zkServer.sh status   [s233] 启动dfs系统 $>start-dfs.sh 如果s237 namenode启动失败,则 [s237] $>hadoop-daemon.sh start namenode [s233]启动yarn集群

VS2012加载失败

1、通过命令提示行工具进入VS安装目录下的Common7\IDE 2、执行devenv.exe /setup /resetuserdata /resetsettings 3、重启VS

cocospod 搭建环境和使用

iOS 最新版 CocoaPods 的安装流程 1.移除现有Ruby默认源 $gem sources --remove https://rubygems.org/ 2.使用新的源 $gem sources -a https://ruby.taobao.org/ 3.验证新源是否替换成功 $gem sources -l 4.安装CocoaPods (1)  $sudo gem