当我使用kafka频道和kafka同时在水槽中沉没时,几分钟后我得到了这个例外
java.lang.IllegalStateException: close() called when transaction is OPEN - you must either commit or rollback first at com.google.common.base.Preconditions.checkState(Preconditions.java:172) at org.apache.flume.channel.BasicTransactionSemantics.close(BasicTransactionSemantics.java:179) at org.apache.flume.sink.kafka.KafkaSink.process(KafkaSink.java:255) at org.apache.flume.sink.DefaultSinkProcessor.process(DefaultSinkProcessor.java:67) at org.apache.flume.SinkRunner$PollingRunner.run(SinkRunner.java:145) at java.lang.Thread.run(Thread.java:748)
在成功传递某些事件后抛出此异常。
如果我使用内存通道而不是kafka通道或loggerSink而不是kafka sink,一切都很好。即使我使用一个kafka集群用于kafka频道,另一个kafka集群用于kafka sink,一切都很好。
Flume版本是:1.7.0
Kafka版本是:0.10.2.0
答案 0 :(得分:0)
我在一台机器上使用了水槽和卡夫卡 我将水槽通道主题分区从4更改为1,问题已修复。