Error reading field 'throttle_time_ms': java.nio.BufferUnderflowException

flume往Kafka里写数据报错:

04 Jul 2018 20:43:44,401 ERROR [kafka-producer-network-thread | producer-1] (org.apache.kafka.clients.producer.internals.Sender.run:130)  - Uncaught error in kafka producer I/O thread: 
org.apache.kafka.common.protocol.types.SchemaException: Error reading field 'throttle_time_ms': java.nio.BufferUnderflowException
	at org.apache.kafka.common.protocol.types.Schema.read(Schema.java:71)
	at org.apache.kafka.clients.NetworkClient.handleCompletedReceives(NetworkClient.java:439)
	at org.apache.kafka.clients.NetworkClient.poll(NetworkClient.java:265)
	at org.apache.kafka.clients.producer.internals.Sender.run(Sender.java:216)
	at org.apache.kafka.clients.producer.internals.Sender.run(Sender.java:128)
	at java.lang.Thread.run(Thread.java:748)

是由于flume版本为1.7,kafka版本较老为0.8,不兼容所致,将kafka版本升级为0.11或flume版本使用1.6解决!

注:flume1.6及以前的版本没有TAILDIR(org.apache.flume.source.taildir.TaildirSource)这个source type,这个类型支持目录变化的文件,断点续传,1.6版本想要使用这个功能需要将1.7版中Taildir Source 组件源码编译打包后,放入 Flume1.6 安装目录的 lib 文件目录下。

在 Flume配置文件中指定全类名即可使用 TaildirSource 组件。

a1.sources.r1.type = com.xxx.flume.source.TaildirSource

你可能感兴趣的:(kafka)