【Kafka】关于Kafka启动时报错的解决过程

博客讲述了在运行Kafka时遇到的Zookeeper连接超时问题,通过调整zookeeper.connection.timeout.ms参数从18000ms增加到60000ms,成功解决了启动失败的问题。首次尝试是更新Zookeeper版本,但问题依旧;第二次尝试修改超时时间后Kafka启动成功;第三次尝试彻底重置环境,确认版本匹配并使用新的配置,最终确定问题在于默认超时设置过短。
摘要由CSDN通过智能技术生成

版本信息:

kafka_2.12-3.1.0、apache-zookeeper-3.8.0

报错信息:

[2022-03-16 05:30:57,192] WARN An exception was thrown while closing send thread for session 0x100007216820000. (org.apache.zookeeper.ClientCnxn)
EndOfStreamException: Unable to read additional data from server sessionid 0x100007216820000, likely server has closed socket
        at org.apache.zookeeper.ClientCnxnSocketNIO.doIO(ClientCnxnSocketNIO.java:77)
        at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:350)
        at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1290)
[2022-03-16 05:30:57,298] INFO Session: 0x100007216820000 closed (org.apache.zookeeper.ZooKeeper)
[2022-03-16 05:30:57,377] INFO EventThread shut down for session: 0x100007216820000 (org.apache.zookeeper.ClientCnxn)
[2022-03-16 05:30:57,380] INFO [ZooKeeperClient Kafka server] Closed. (kafka.zookeeper.ZooKeeperClient)
[2022-03-16 05:30:57,382] ERROR Fatal error during KafkaServer startup. Prepare to shutdown (kafka.server.KafkaServer)
kafka.zookeeper.ZooKeeperClientTimeoutException: Timed out waiting for connection while in state: CONNECTING
        at kafka.zookeeper.ZooKeeperClient.$anonfun$waitUntilConnected$3(ZooKeeperClient.scala:254)
        at kafka.zookeeper.ZooKeeperClient.waitUntilConnected(ZooKeeperClient.scala:250)
        at kafka.zookeeper.ZooKeeperClient.<init>(ZooKeeperClient.scala:108)
        at kafka.zk.KafkaZkClient$.apply(KafkaZkClient.scala:1981)
        at kafka.zk.KafkaZkClient$.apply(KafkaZkClient.scala:1968)
        at kafka.server.KafkaServer.initZkClient(KafkaServer.scala:491)
        at kafka.server.KafkaServer.startup(KafkaServer.scala:201)
        at kafka.Kafka$.main(Kafka.scala:109)
        at kafka.Kafka.main(Kafka.scala)
[2022-03-16 05:30:57,383] INFO shutting down (kafka.server.KafkaServer)
[2022-03-16 05:30:57,470] INFO App info kafka.server for -1 unregistered (org.apache.kafka.common.utils.AppInfoParser)
[2022-03-16 05:30:57,470] INFO shut down completed (kafka.server.KafkaServer)
[2022-03-16 05:30:57,471] ERROR Exiting Kafka. (kafka.Kafka$)
[2022-03-16 05:30:57,471] INFO shutting down (kafka.server.KafkaServer)

第一次尝试解决:

在网上查询资料,说zookeeper的版本需要和kafka安装目录下的libs目录下的(真绕口!)zookeeper的jar包的版本保持一致。重新下载apache-zookeeper-3.6.3-bin.tar.gz,并安装、配置、启动。重新启动kafka,依然报错,报错信息和上面的一致。

第二次尝试解决:

zookeeper的版本不变(v3.6.3)将连接zookeeper的超时时间参数(zookeeper.connection.timeout.ms)的值修改为60000ms,即60秒。重新启动Kafka,进程启动成功。

broker.id=0
listeners=PLAINTEXT://192.168.223.200:9092
advertised.listeners=PLAINTEXT://192.168.223.200:9092
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=/root/kafka/logs
num.partitions=1
num.recovery.threads.per.data.dir=1
offsets.topic.replication.factor=1
transaction.state.log.replication.factor=1
transaction.state.log.min.isr=1
log.retention.hours=24
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000
zookeeper.connect=192.168.223.200:2181/kafka
zookeeper.connection.timeout.ms=60000
group.initial.rebalance.delay.ms=5

第三次尝试解决:

推倒重来!

将之前的kafka和zookeeper进程停掉,目录全部删除,重新部署、配置和启动,版本就采用kafka_2.12-3.1.0 + apache-zookeeper-3.8.0,采用kafka依旧采用上面的配置,经过测试Kafak进程启动成功。看来问题就是zookeeper.connection.timeout.ms这个默认超时时间18000ms(即18秒不够)导致的,和网上传说的kafka的libs目录下的zookeeper jar包版本与zookeeper版本不一致无关!

Kafka启动脚本 - start.sh(放在/xxx/kafka/bin目录下)

./kafka-server-start.sh -daemon ../config/server.properties
tail -f ../logs/server.log
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cnskylee

技术分享我是认真的,期待您打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值