Khi tôi cố gắng chạy Kafka Consumer with Avro qua dữ liệu với lược đồ tương ứng, nó trả về lỗi "AvroRuntimeException: Dữ liệu bị sai. Độ dài là âm: -40". Tôi thấy những người khác gặp sự cố tương tự coverting byte array to json, Avro write and read và Kafka Avro Binary *coder. Tôi cũng đã tham chiếu đến số Consumer Group Example này, tất cả đều hữu ích, tuy nhiên không có trợ giúp nào về lỗi này cho đến nay .. Nó hoạt động cho đến khi mã này (dòng 73)Kafka Avro Consumer with Decoder issues
Decoder decoder = DecoderFactory.get(). BinaryDecoder (byteArrayInputStream, null);
Tôi đã thử các bộ giải mã khác và in ra nội dung của biến byteArrayInputStream trông như thế nào tôi tin bạn sẽ mong đợi dữ liệu avro được tuần tự hóa (trong thông báo tôi có thể thấy lược đồ và một số dữ liệu và một số dữ liệu không đúng định dạng). in ra các Bytes có sẵn bằng cách sử dụng phương thức .available(), trả về 594. Tôi không hiểu tại sao lỗi này lại xảy ra. Apache Nifi được sử dụng để tạo luồng Kafka với cùng một lược đồ từ hdfs. Tôi sẽ đánh giá cao sự giúp đỡ nào.
THANK YOU @miguno chính xác! Tôi đang lắc lư và lăn bằng cách sử dụng Bộ giải mã cho DataFileReader với hai thay đổi dòng. DatumReader datumReader = new SpecificDatumReader (giản đồ); DataFileStream dataFileReader = new DataFileStream (inputStream, datumReader); –
SparkleGoat
Hiệu chỉnh * Tôi đang lắc lư và lăn ngay bây giờ mà tôi đã thay đổi thành DataFileReader với hai thay đổi dòng. Bạn đúng binaryDecoder không phải là sự lựa chọn đúng cho công việc. – SparkleGoat
Rất vui khi nó hoạt động! –