Kafka启动失败,zookeeper超时(远程服务器),但本机可以直接连接zookeeper
Kafka startup fails with zookeeper timeout (remote server), yet the machine can connect to zookeeper directly
当我启动 kafka 时,它很快就失败了,同时抱怨它无法连接到 zookeeper。我是 运行 独立的动物园管理员 cluster/ensemble。我很困惑,因为服务器之间没有防火墙(由 zookeeper-shell.sh 测试证明)。
来自 /var/log/kafka/server.log
2016-02-24 16:07:12,101 INFO kafka.server.KafkaServer: [Kafka Server 1], Connecting to zookeeper on 10.7.20.100:2181,10.7.20.101:2181,10.7.20.102:2181
2016-02-24 16:07:20,291 FATAL kafka.server.KafkaServerStartable: Fatal error during KafkaServerStable startup. Prepare to shutdown
org.I0Itec.zkclient.exception.ZkTimeoutException: Unable to connect to zookeeper server within timeout: 6000
at org.I0Itec.zkclient.ZkClient.connect(ZkClient.java:880)
at org.I0Itec.zkclient.ZkClient.<init>(ZkClient.java:98)
at org.I0Itec.zkclient.ZkClient.<init>(ZkClient.java:84)
at kafka.server.KafkaServer.initZk(KafkaServer.scala:113)
at kafka.server.KafkaServer.startup(KafkaServer.scala:69)
at kafka.server.KafkaServerStartable.startup(KafkaServerStartable.scala:34)
at kafka.Kafka$.main(Kafka.scala:46)
at kafka.Kafka.main(Kafka.scala)
2016-02-24 16:07:20,294 INFO kafka.server.KafkaServer: [Kafka Server 1], shutting down
2016-02-24 16:07:20,312 INFO kafka.server.KafkaServer: [Kafka Server 1], shut down completed
2016-02-24 16:07:20,317 INFO kafka.server.KafkaServer: [Kafka Server 1], shutting down
但是从 /opt/kafka 安装目录我可以使用集成连接字符串连接到 zookeeper - 所以我真的怀疑它是网络还是防火墙。
[me@dckafka01 kafka]$ cd /opt/kafka
[me@dckafka01 kafka]$ bin/zookeeper-shell.sh 10.7.20.100:2181,10.7.20.101:2181,10.7.20.102:2181
Connecting to 10.7.20.100:2181,10.7.20.101:2181,10.7.20.102:2181
Welcome to ZooKeeper!
JLine support is disabled
WATCHER::WatchedEvent state:SyncConnected type:None path:null
get /blah
null
cZxid = 0x400000009
ctime = Tue Feb 16 09:00:28 EST 2016
mZxid = 0x400000009
mtime = Tue Feb 16 09:00:28 EST 2016
pZxid = 0x40000017e
cversion = 2
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 0
numChildren = 2
ls /blah
[applications, registry]
符合预期。有没有人有角度让我调查一下?
嗯 - 更改超时有帮助。现在我需要减少网络延迟
cat config/server.properties
# coding: UTF-8
# This file created by Chef from template. Do not hand edit this file
log.dirs=/var/kafka
port=9092
num.partitions=4
default.replication.factor=3
log.flush.interval.messages=1
log.retention.minutes=43200
log.retention.check.interval.ms=3600000
num.replica.fetchers=4
replica.fetch.wait.max.ms=5000
replica.lag.max.messages=10000
auto.leader.rebalance.enable=true
num.network.threads=8
advertised.host.name=10.7.20.71
zookeeper.connection.timeout.ms=16000
broker.id=1
zookeeper.connect=10.7.20.100:2181,10.7.20.101:2181,10.7.20.102:2181
我在寻找 Kafka 无法连接到 Zookeeper 的特定问题的解决方案时发现了这个线程。在你的情况下,我认为这只是 Zookeeper 启动和准备接收连接(监听套接字)的延迟。所以可能更好的解决方案是在启动 Kafka 之前等待,或者最好有一个脚本来检查 Zookeeper 节点是否准备好接收连接,然后启动 Kafka。我认为只为 Kafka 启动更改配置的超时时间不好。它应该被改变,例如,如果你认为你的网络太慢(你需要一个更大的数字)或者它足够快以处理更短的超时。
就我而言,我刚刚发现 运行 动物园管理员的命令提示符有点挂起(通常发生在 windows)。
我只需要 随机按下某个键 然后 cmd 再次激活。然后 运行 命令没有给我任何错误。
当我启动 kafka 时,它很快就失败了,同时抱怨它无法连接到 zookeeper。我是 运行 独立的动物园管理员 cluster/ensemble。我很困惑,因为服务器之间没有防火墙(由 zookeeper-shell.sh 测试证明)。
来自 /var/log/kafka/server.log
2016-02-24 16:07:12,101 INFO kafka.server.KafkaServer: [Kafka Server 1], Connecting to zookeeper on 10.7.20.100:2181,10.7.20.101:2181,10.7.20.102:2181
2016-02-24 16:07:20,291 FATAL kafka.server.KafkaServerStartable: Fatal error during KafkaServerStable startup. Prepare to shutdown
org.I0Itec.zkclient.exception.ZkTimeoutException: Unable to connect to zookeeper server within timeout: 6000
at org.I0Itec.zkclient.ZkClient.connect(ZkClient.java:880)
at org.I0Itec.zkclient.ZkClient.<init>(ZkClient.java:98)
at org.I0Itec.zkclient.ZkClient.<init>(ZkClient.java:84)
at kafka.server.KafkaServer.initZk(KafkaServer.scala:113)
at kafka.server.KafkaServer.startup(KafkaServer.scala:69)
at kafka.server.KafkaServerStartable.startup(KafkaServerStartable.scala:34)
at kafka.Kafka$.main(Kafka.scala:46)
at kafka.Kafka.main(Kafka.scala)
2016-02-24 16:07:20,294 INFO kafka.server.KafkaServer: [Kafka Server 1], shutting down
2016-02-24 16:07:20,312 INFO kafka.server.KafkaServer: [Kafka Server 1], shut down completed
2016-02-24 16:07:20,317 INFO kafka.server.KafkaServer: [Kafka Server 1], shutting down
但是从 /opt/kafka 安装目录我可以使用集成连接字符串连接到 zookeeper - 所以我真的怀疑它是网络还是防火墙。
[me@dckafka01 kafka]$ cd /opt/kafka
[me@dckafka01 kafka]$ bin/zookeeper-shell.sh 10.7.20.100:2181,10.7.20.101:2181,10.7.20.102:2181
Connecting to 10.7.20.100:2181,10.7.20.101:2181,10.7.20.102:2181
Welcome to ZooKeeper!
JLine support is disabled
WATCHER::WatchedEvent state:SyncConnected type:None path:null
get /blah
null
cZxid = 0x400000009
ctime = Tue Feb 16 09:00:28 EST 2016
mZxid = 0x400000009
mtime = Tue Feb 16 09:00:28 EST 2016
pZxid = 0x40000017e
cversion = 2
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 0
numChildren = 2
ls /blah
[applications, registry]
符合预期。有没有人有角度让我调查一下?
嗯 - 更改超时有帮助。现在我需要减少网络延迟
cat config/server.properties
# coding: UTF-8
# This file created by Chef from template. Do not hand edit this file
log.dirs=/var/kafka
port=9092
num.partitions=4
default.replication.factor=3
log.flush.interval.messages=1
log.retention.minutes=43200
log.retention.check.interval.ms=3600000
num.replica.fetchers=4
replica.fetch.wait.max.ms=5000
replica.lag.max.messages=10000
auto.leader.rebalance.enable=true
num.network.threads=8
advertised.host.name=10.7.20.71
zookeeper.connection.timeout.ms=16000
broker.id=1
zookeeper.connect=10.7.20.100:2181,10.7.20.101:2181,10.7.20.102:2181
我在寻找 Kafka 无法连接到 Zookeeper 的特定问题的解决方案时发现了这个线程。在你的情况下,我认为这只是 Zookeeper 启动和准备接收连接(监听套接字)的延迟。所以可能更好的解决方案是在启动 Kafka 之前等待,或者最好有一个脚本来检查 Zookeeper 节点是否准备好接收连接,然后启动 Kafka。我认为只为 Kafka 启动更改配置的超时时间不好。它应该被改变,例如,如果你认为你的网络太慢(你需要一个更大的数字)或者它足够快以处理更短的超时。
就我而言,我刚刚发现 运行 动物园管理员的命令提示符有点挂起(通常发生在 windows)。
我只需要 随机按下某个键 然后 cmd 再次激活。然后 运行 命令没有给我任何错误。