Cannot open channel to 3 at election address :3888 java.net.ConnectException: Connection refused (Co...

2023-05-16

关于Linux中搭建分布式时可能遇到的问题

这个问题来自于今天安装zookeeper时踩的一个大坑,害的我花了一天时间。在搭建zookeeper的分布式时,往往要进行这样的配置:

server.1=hadoop01:2888:3888
server.2=hadoop02:2888:3888
server.3=hadoop03:2888:3888

一开始我是按照这样的配置来做的,后来死活不成功,zookeeper.out中的信息如下:

2017-04-21 06:05:34,385 [myid:1] - WARN  [QuorumPeer[myid=1]/0:0:0:0:0:0:0:0:2181:QuorumCnxManager@400] - Cannot open channel to 3 at election address hadoop05/192.168.31.155:3888
java.net.ConnectException: Connection refused (Connection refused)
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
    at java.net.Socket.connect(Socket.java:589)
    at org.apache.zookeeper.server.quorum.QuorumCnxManager.connectOne(QuorumCnxManager.java:381)
    at org.apache.zookeeper.server.quorum.QuorumCnxManager.connectAll(QuorumCnxManager.java:426)
    at org.apache.zookeeper.server.quorum.FastLeaderElection.lookForLeader(FastLeaderElection.java:843)
    at org.apache.zookeeper.server.quorum.QuorumPeer.run(QuorumPeer.java:822)

先不要关心日志的时间(其实你们也不会关注的,这个是没有配时间,所以显示早上六点,哪个傻叉会6点起来)。
对于这个错误,网上大多数说的是zookeeper启动顺序导致开始选举不稳定引起的,不用担心,过一会儿就会好的,可是对于我来说并不管用。然后就是什么主机映射之类的,就算配了主机映射,三台虚拟机都可以相互ping通,似乎也没什么卵用。继续查资料,发现又有这样的一种配置:

server.1=192.168.31.151:2888:3888
server.2=192.168.31.152:2888:3888
server.3=192.168.31.153:2888:3888

然后我又照着这种配置又配了一遍,发现这样居然可以,leader和follower都选出来了。激动之余,尼玛问题究竟出在哪儿,这样两种配置有啥不一样,这又让我寝食难安,百度了一圈毛都没发现。然后就google去了,反正就是在一个犄角旮旯找到了一个问答,发现别人也是有这种问题,链接在此:
https://unix.stackexchange.com/questions/240506/zookeeper-dns-name-problems-with-leader-elections-when-migrating-from-windows-to
问的题目是:

Zookeeper DNS name problems with leader elections when migrating from Windows to Debian

回答的人就说了:

The "smoking gun" was this line in my zookeeper log:

2015-11-26 20:48:31,439 [myid:1] - INFO
[Thread-2:QuorumCnxManager$Listener@504] - My election bind port:
spring-xd-1/127.0.0.1:3888 

So, why was Zookeeper binding the election port on the loopback interface? Well...

My /etc/hosts on one of the VMs looked like this:

127.0.0.1   spring-xd-1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1         localhost localhost.localdomain
localhost6 localhost6.localdomain6

## vagrant-hostmanager-start
172.28.128.3    spring-xd-1
172.28.128.4    spring-xd-2
172.28.128.7    spring-xd-3
## vagrant-hostmanager-end

I removed the hostname from the 127.0.0.1 line in /etc/hosts and bounced the zookeeper service on all 3 nodes, and BAM! everything came up roses. So, now the host file on each machine looks like this:

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1         localhost localhost.localdomain
localhost6 localhost6.localdomain6

## vagrant-hostmanager-start
172.28.128.3    spring-xd-1
172.28.128.4    spring-xd-2
172.28.128.7    spring-xd-3
## vagrant-hostmanager-end

最后一段有点启发意义:

EDIT: According to
http://ccl.cse.nd.edu/operations/condor/hostname.shtml, this seems to
be a fairly common problem with clustered apps on Linux, and
recommends editing the hosts file as I've described above. However,
the Zookeeper documentation on cluster setup doesn't mention it.

想去访问这个说明这个问题的网址,可惜访问不了,mmp!

P.S. 搭zookeeper这个硬是要搞出人命

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Cannot open channel to 3 at election address :3888 java.net.ConnectException: Connection refused (Co... 的相关文章

随机推荐

  • 那些在调试器里没问题(在开发环境没问题),但是独立运行却出问题的原因汇总...

    为什么80 的码农都做不了架构师 xff1f gt gt gt 1 静态编译的动态库依赖 xff0c 在调试器中会把程序的起始目录放在当前项目目录 xff0c 因此如果依赖库在当前项目目录则不会出问题 2 权限问题 xff0c 比如调试器可
  • Android-Parcelable理解与使用(对象序列化)

    2019独角兽企业重金招聘Python工程师标准 gt gt gt parcel定义介绍 xff1a android提供了一种新的类型 xff1a parcel xff08 英文解释 xff1a 包裹 xff0c 小包 xff09 xff0
  • 参考ElementUI的文档实现方案,实现自己组件库的说明文档

    实现使用markdown编写的个人组件库说明文档 前一篇文章实现了按需加载封装个人的组件库功能 xff0c 有了组件库 xff0c 当然还要有配套说明文档 xff0c 这样使者用起来才更方便 打包完成的dist目录是最终可放到服务器中 xf
  • 【设计模式】我终于读懂了代理模式。。。

    文章目录 x1f466 代理模式的基本介绍 x1f467 代理模式示意图 x1f469 静态代理 x1f468 应用实例 x1f476 思路分析图解 类图 x1f475 静态代理优缺点 x1f474 动态代理 x1f471 JDK 中生成代
  • 今年读过的还不错的计算机类书籍

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 今年读过的还不错的计算机类书籍 一年又快过去了 xff0c 今年恶补了很多计算机基础知识 xff0c 参kao了网上各种程序员必读书目 xff0c 看下来觉得很有收获 1
  • <ps> ps aux 和ps -aux和 ps -ef的选择

    Linux中的ps命令是Process Status的缩写 ps命令用来列出系统中当前运行的那些进程 ps命令列出的是当前那些进程的快照 xff0c 就是执行ps命令的那个时刻的那些进程 xff0c 如果想要动态的显示进程信息 xff0c
  • python学习笔记(六):常用模块

    一 模块 包 什么是模块 xff1f 模块实质上就是一个python文件 它是用来组织代码的 xff0c 意思就是说把python代码写到里面 xff0c 文件名就是模块的名称 xff0c test py test就是模块名称 什么是包 x
  • Linux经常用到的命令

    1 Linux下用vim打开配置文件乱码 xff0c 在终端输入 xff1a LANG 61 即可 2 查看端口是否被占用 xff1a 3 netstat anp grep port netstat ltn 4 lsof i port 5
  • (部分清帐)关于收到部分还款SAP系统两种处理方法的说明和比较-转

    背景 销售货物给A顾客 同时开出发票16000元 数日后 进行收款作业 但收款金额为15000元 小于原发票金额 此时在系统中做收款 同时处理未清项 F 28收款 输入实际收款金额后进入 34 处理未清项 34 界面 可发现在右下角输入金额
  • Java获取单词的首字母的方法_java – 从句子中的每个单词中提取第一个字母

    我已经开发了一个语音到文本程序 用户可以说一个简短的句子 然后将其插入文本框 如何提取每个单词的首字母然后将其插入文本字段 xff1f 例如 如果用户说 xff1a Hello World 我想在文本框中插入HW 解决方法 如果你有一个字符
  • python学习笔记-(九)模块

    基础知识 1 定义 模块 xff1a 用来从逻辑上组织python代码 xff08 变量 xff0c 函数 xff0c 类 xff0c 逻辑 实现一个功能 xff09 xff0c 本质就是 py结尾的python文件 xff08 文件名 x
  • Ubuntu 查看磁盘空间大小命令<转>

    df h Df命令是linux系统以磁盘分区为单位查看文件系统 xff0c 可以加上参数查看磁盘剩余空间信息 xff0c 命令格式 xff1a df hl 显示格式为 xff1a 文件系统 容量 已用 可用 已用 挂载点 Filesyste
  • linux开机自动启动vnc,怎样实现重启linux后自动启动vncserver服务?

    linux开机自动启动vncserver服务 xff0c 需要先保证VNC安装无问题以及各种配置以及防火墙正常 xff0c 下面是vncserver服务安装 配置以及设置自启动的步骤 xff1a 首先需要检查一下服务器是否已经安装了VNC服
  • 【设计模式】我终于读懂了模板方法模式。。。

    x1f34e 豆浆制作问题 编写制作豆浆的程序 xff0c 说明如下 1 制作豆浆的流程 选材 gt 添加配料 gt 浸泡 gt 放到豆浆机打碎 2 通过添加不同的配料 xff0c 可以制作出不同口味的豆浆 3 选材 浸泡和放到豆浆机打碎这
  • python-Django中连接MySQL数据库及设置用户名密码

    为什么80 的码农都做不了架构师 xff1f gt gt gt 项目和应用创建好以后 xff0c 进入当前的目录所在的文件夹即可操作 xff0c 也可以用pycharm中的Tools工具运行manage py xff0c 本人采用的是运行p
  • gitlab linux环境搭建,Linux搭建gitlab

    由于上一篇搭建的git服务器 xff0c 进行权限控制时很不方便 xff0c 决定重新搭建gitlab作为管理项目工具 xff0c 有web页面操作起来也很方便 本文只记录安装过程以备后用 一 服务端 配置服务yum源 vim etc yu
  • 林帆:Docker运行GUI软件的方法

    欢迎关注大数据和人工智能技术文章发布的微信公众号 xff1a 清研学堂 xff0c 在这里你可以学到夜白 xff08 作者笔名 xff09 精心整理的笔记 xff0c 让我们每天进步一点点 xff0c 让优秀成为一种习惯 xff01 继上周
  • python内部函数如何修改外部函数变量

    2019独角兽企业重金招聘Python工程师标准 gt gt gt python3 nonlocal关键字 def func result 61 10 def down nonlocal result result 61 result 1
  • 解决bug的能力

    解决问题的高手都会努力保持明白的基础上加上一点不明白的现场模型 xff0c 所以他很喜欢把一些无聊的干扰因素直接删除掉 英语报错信息只能一边看一边读 xff0c 永远告诉自己 xff0c 我还没有读懂 转载于 https blog 51ct
  • Cannot open channel to 3 at election address :3888 java.net.ConnectException: Connection refused (Co...

    关于Linux中搭建分布式时可能遇到的问题 这个问题来自于今天安装zookeeper时踩的一个大坑 xff0c 害的我花了一天时间 在搭建zookeeper的分布式时 xff0c 往往要进行这样的配置 xff1a server 1 61 h