将来自kafka主题的JSON格式的消息复制到AVRO格式的另一个主题

时间:2016-10-30 06:17:59

标签: json avro apache-kafka-connect

我有一个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}
}

任何人都可以帮我这个吗?提前感谢......

0 个答案:

没有答案