昨天刚部署好kafka集群,是在windows虚拟机上部署的,三个zookeeepr和三个kafka,都是部署在同一台虚拟机上。然后今天同事测试项目代码连接我部署的kafka集群时,下午他就发了这个报错信息给我:
1 partitions have leader brokers without a matching listener,including [gw651_downstream-0].
我打开虚拟机,去到kafka和zookeeper运行黑窗口中就看到了如下错误,想请问下是什么原因?我该怎么解决这个bug?
其中一个zookeeper黑窗口发现如下信息:
java.io.IOException:远程主机强迫关闭了一个现有的连接.
at sun.nio.ch.SocketDispatcher.read0<Native Method>
at sun.nio.ch.SocketDispatcher.read<SocketDispatcher.java.java:43>
at sun.nio.ch.IOUtil.readIntoNativeBuffer<IOUtil.java:223>
at sun.nio.ch.IOUtil.read<IOUtil.java:197>
at sun.nio.ch.SocketChannelImpl.read<SocketChannelImpl.java:380>
at org.apache.zookeeper.server.NIOServerCnxn.doIO<NIOServerCnxn.java:324>
其中一个Kafka黑窗口有发现如下信息:
[error occurred during error reporting (nul1l). id 0xc0000005 ]
# There is insufficient memory for the Java Runtine Environnent to continue。
# Native memory allocation (malloc) failed to allocate 32744 bytes for ChunkPoo1::allocate
# An error report file with more infornation is saved as:
# C:\javaPro\kafka\kafka_2.12-2.5.0-1\bin\windows\hs_err_pid3984.log
# Compiler replay data is saved as:
# C:\javaPro\kafka\kafka_2.12-25.0-1\bin\windows\replay_pid3984.log
还有一个kafka黑窗口发现如下:
Caused by: java.io.I0Exception:存储空间不足,无法处理此命令.
at java.io.FileOutputStream.writeBytes<Native Method>
at java.io.FileOutputStream.write<FileOutputStream.java:326>
at sun.nio.cs.StreamEncoder.writeBytes(StreamEncoder.java:221>
at sun.nio.cs.StreamEncoder.implFlushBuffer(StreamEncoder.java-291)
at sun.nio.cs.StreamEncoder.implFlush<StreamEncoder.java:295>
at sun.nio.cs.StreamEncoder.flush<OutputStreamWriter.java:229)
at java.io.BufferedWriter.flush(BufferedWriter.java:254>
at kafka.server.checkpoints.CheckpointFile.liftedTree1$1<CheckpointFile.scala:66>
at kafka.server.checkpoints.CheckpointFile.write<checkpointFile.scala:50>
at kafka.server.checkpoints.0ffsetCheckpointFile.write<OffsetCheckpointFile.scala:59>
at kafka.server.ReplicaManager.$anonfun$checkpointHighWatermarks$8<ReplicaManager.scala:1601>
.....
后面还有一句话:
WARN Stopping serving logs in dir C:\tmp\kafka-logs-2 <kafka.log.LogManager>
ERROR Shutdown broker because all log dirs in C:\tmp\kafka-logs-2 have failed <kafka.log.LogManager>
执行kafka命令时信息显示如下:
kafka-topics.sh --zookeeper localhost:2181 --describe --topic test600
Topic: test600 PartitionCount: 1 ReplicationFactor: 1 Configs:
Topic: test600 Partition: 0 Leader: none Replicas: 2 Isr: 2
kafka-topics.bat --zookeeper localhost:2182 --describe --topic gw651_downstream
Topic: gw651_downstream PartitionCount: 1 ReplicationFactor: 1 Configs:
Topic: gw651_downstream Partition: 0 Leader: none Replicas: 1 Isr: 1
zk的连接关闭偶尔出现是可以忽视,并不重要,因为很多客户端连接zk,主动断开连接是很正常的。
Caused by: java.io.I0Exception:存储空间不足,无法处理此命令.
真正的原因是磁盘不足了
我是刚部署两天是什么原因导致磁盘空间不足的?磁盘空间不足怎么解决?我执行kafka命令时显示的信息是不是说明我某一个kafka节点挂了?
kafka数据默认保留7天,配置在
config/server.properties
log.retention.hours=72
可以根据你的磁盘量,配置保留时间少一点,保障磁盘不会在写满。
所有的节点都需要修改,修改完成后,需要重启kafka。
好的,谢谢大佬
我看到网上有人说可以将下面三个参数改成这样,但不清楚作者当时的kafka是单机的还是集群,大佬帮我看下,集群是否可以更改这三个属性,感激不尽
offsets.topic.replication.factor=3 transaction.state.log.replication.factor=3 transaction.state.log.min.isr=2
都不是,我给你的是,这里有这些参数的说明
https://www.orchome.com/472
我之前发的idea控制台信息你怎么删啦呀?
Group coordinator lookup failed: The coordinator is not available
和
Coordinator discovery failed, refreshing metadata,
这两个报错,
我上网查好像有部分博主说要改
offsets.topic.replication.factor=3
这个属性, 大佬帮我确定下吧,这三个属性要不要改? 急急急呀,谢谢~~不同的问题不能串,默认的参数就可以了。
好的 ,十分谢谢
采纳吧。
好的
你的答案