我正在尝试使用Kafka HDFS Sink编写JSON。
我具有以下属性(connect-standalone.properties):
key.converter.schemas.enable = false
value.converter.schemas.enable = false
schemas.enable=false
key.converter=org.apache.kafka.connect.json.JsonConverter
value.converter=org.apache.kafka.connect.json.JsonConverter
在我的属性上:
format.class=io.confluent.connect.hdfs.json.JsonFormat
我得到以下异常:
org.apache.kafka.connect.errors.DataException:由于串行化错误,无法将byte []转换为Kafka连接
... 引起原因:org.apache.kafka.commom.errors.SerlizationException:com.fasterxml.jackson.core.JsonParseException:无法识别的标记“ test”:在[来源:预期为null,true,false或NaN时(byte [])“ test”行:1列:11]
我的JSON有效。
我该如何解决?
*我也在尝试使用示例JSON,例如:
{"key":"value"}
还是同样的错误。
谢谢。
答案 0 :(得分:1)
根据错误,并非主题中的所有消息实际上都是JSON对象。 最新消息可能有效,或者Kafka值可能有效(尽管不是键),但是错误表明它试图读取纯字符串(byte[])"test"
,这是无效
如果只希望将文本数据导入HDFS,则可以使用String格式,但是不会进行Hive集成
format.class=io.confluent.connect.hdfs.string.StringFormat
如果您确实想以这种格式使用Hive,则需要自己定义JSON Serde