当我尝试使用 Avro 在具有我各自架构的数据上运行 Kafka Consumer 时,它返回错误 "AvroRuntimeException: Malformed data. Length is negative: -40" 。我看到其他人在将字节数组转换为 json、Avro write and read以及Kafka Avro Binary *coder时遇到了类似的问题。我还引用了这个Consumer Group Example,它们都很有帮助,但是到目前为止对这个错误没有帮助。它一直工作到这部分代码(第 73 行)
解码器解码器 = DecoderFactory.get().binaryDecoder(byteArrayInputStream, null);
我已经尝试过其他解码器并打印出 byteArrayInputStream 变量的内容,该变量看起来像我认为您期望序列化的 avro 数据的样子(在消息中我可以看到架构和一些数据以及一些格式错误的数据)我打印出了使用 .available() 方法可用的字节数,该方法返回 594。我无法理解为什么会发生此错误。Apache Nifi 用于从 hdfs 生成具有相同模式的 Kafka 流。我将不胜感激任何帮助。