Zookeeper -Kafka:ConnectException - 连接被拒绝 [英] Zookeeper -Kafka: ConnectException - Connection refused

查看:76
本文介绍了Zookeeper -Kafka:ConnectException - 连接被拒绝的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试在 ubuntu EC2 机器上设置 3 个 Kafka 代理.但是我在启动 zookeeper 时收到 ConnectException.我的 ec2 实例的 security group 中的所有端口都已打开.

I am trying to setup 3 Kafka brokers on ubuntu EC2 machines. But I am getting ConnectException while starting zookeeper. All the ports in the security group of my ec2 intsances are already open.

下面是堆栈跟踪:

[2016-03-03 07:37:12,040] ERROR Exception while listening (org.apache.zookeeper.server.quorum.QuorumCnxManager)
java.net.BindException: Cannot assign requested address
    at java.net.PlainSocketImpl.socketBind(Native Method)
    at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:376)
    at java.net.ServerSocket.bind(ServerSocket.java:376)
    at java.net.ServerSocket.bind(ServerSocket.java:330)
at org.apache.zookeeper.server.quorum.QuorumCnxManager$Listener.run(QuorumCnxManager.java:507)
...
...
...

[2016-03-03 07:23:46,093] WARN Cannot open channel to 2 at election address /52.36.XXX.181:3888 (org.apache.zookeeper.server.quorum.QuorumCnxManager)
    java.net.ConnectException: Connection refused
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at 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)

以下是配置:

zookeeper.properties:

dataDir=/tmp/zookeeper
clientPort=2181
maxClientCnxns=0

server.1=52.37.XX.70:2888:3888
server.2=52.36.XXX.181:2888:3888
server.3=52.37.XX.42:2888:3888
initLimit=5
syncLimit=2

server.properties:

broker.id=1
port=9092
host.name=52.37.XX.70

num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
log.dirs=/tmp/kafka-logs
num.partitions=3
num.recovery.threads.per.data.dir=1
log.retention.hours=168
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000
log.cleaner.enable=false

zookeeper.connect=52.37.XX.70:2181,52.36.XXX.181:2181,52.37.XX.42:2181
zookeeper.connection.timeout.ms=6000

我在/etc/hosts 实例中添加了服务器的公共 IP.我修改后的/etc/hosts 如下:

I have added server's public IP in /etc/hosts of the instances. My modified /etc/hosts is as:

127.0.0.1       localhost localhost.localdomain ip-10-131-X-217
127.0.0.1       localhost localhost.localdomain 52.37.XX.70
127.0.0.1 localhost

# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

/tmp/zookeper/myid 中唯一的 myid 条目也输入正确.

The unique myid entries in /tmp/zookeper/myid are also entered correctly.

我已按照以下中提到的所有步骤进行操作:如何在 AWS 上为 Kafka 创建多节点 - MultiBroker 集群

I have followed all the steps mentioned in: How to create a MultiNode - MultiBroker Cluster for Kafka on AWS

推荐答案

问题是因为我使用了服务器的公共 IP.取而代之的是,使用 ec2 实例的 Public DNS 解决了这个问题.

The issue was because I was using the Public IP of the server. Instead of that, use of Public DNS of ec2 instances fixed the issue.

这篇关于Zookeeper -Kafka:ConnectException - 连接被拒绝的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆