我正在为流处理设置风暴,我的三叉咒spout从kafka主题获取数据,但是我从kafka获取消息时连续得到BufferUnderFlowException:
java.lang.RuntimeException:java.lang.RuntimeException:java.nio.BufferUnderflowException at backtype.storm.utils.DisruptorQueue.consumeBatchToCursor(DisruptorQueue.java:128)~ [storm-core-0.9.5.jar:0.9.5] at backtype.storm.utils.DisruptorQueue.consumeBatchWhenAvailable(DisruptorQueue.java:99)〜[storm-core-0.9.5.jar:0.9.5] 引起:java.lang.RuntimeException:java.nio.BufferUnderflowException 在storm.kafka.KafkaUtils.fetchMessages(KafkaUtils.java:177)〜[stormjar.jar:na] 在storm.kafka.trident.TridentKafkaEmitter.fetchMessages(TridentKafkaEmitter.java:132)〜[stormjar.jar:na] 在storm.kafka.trident.TridentKafkaEmitter.doEmitNewPartitionBatch(TridentKafkaEmitter.java:113)〜[stormjar.jar:na]
引起:java.nio.BufferUnderflowException:null 在java.nio.HeapByteBuffer.get(HeapByteBuffer.java:151)〜[na:1.8.0_05] 在java.nio.ByteBuffer.get(ByteBuffer.java:715)〜[na:1.8.0_05] at kafka.api.ApiUtils $ .readShortString(ApiUtils.scala:40)〜[stormjar.jar:na]
我使用的风暴版本是0.9.5,kafka版本是2.11。我无法理解这里有什么问题。
答案 0 :(得分:1)
如果您正在向经纪人使用不同版本的Kafka客户端,则可能会收到类似的错误。