从Kafka获取消息时缓冲区下溢

时间:2016-05-31 07:34:37

标签: apache-kafka apache-storm trident

我正在为流处理设置风暴,我的三叉咒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。我无法理解这里有什么问题。

1 个答案:

答案 0 :(得分:1)

如果您正在向经纪人使用不同版本的Kafka客户端,则可能会收到类似的错误。