我有一个Kafka-connect设置,其中源连接器从文本文件中读取结构化记录,并以JSON格式存储到主题中(使用模式)。有一个接收器连接器正在运行,它将这些消息插入到Cassandra表中。虽然此设置运行正常,但我还需要引入另一个接收器连接器以将这些消息传输到HDFS。所以我尝试实现HDFSSinkConnector(CP 3.0)。但是这个连接器期望消息将被AVRO格式化,从而引发诸如“无法将数据反序列化为Avro”之类的错误。
有没有办法可以将JSON消息从源主题复制并转换为Avro格式的另一个主题,并将HDFS接收器连接到要读取的新主题?可以使用Kafka Streams完成吗?
我的分布式Connect Config文件包含 -
...
key.converter=org.apache.kafka.connect.json.JsonConverter
value.converter=org.apache.kafka.connect.json.JsonConverter
key.converter.schemas.enable=true
value.converter.schemas.enable=true
...
我在主题中的留言如下 -
{"schema":{"type":"struct",
"fields":[{"type":"string","optional":false,"field":"id"},
{"type":"string","optional":false,"field":"name"},
{"type":"integer","optional":false,"field":"amount"}
],
"optional":false,
"name":"myrec",
"version":1
},
"payload":{"id":"A123","name":"Sample","amount":75}
}
任何人都可以帮我这个吗?提前感谢......