Kiedy próbowałem uruchomić Kafka Consumer with Avro nad danymi z moim schematem, zwraca błąd "AvroRuntimeException: źle sformułowane dane. Długość jest ujemna: -40". Widzę, że inni mieli podobne problemy: coverting byte array to json, Avro write and read i Kafka Avro Binary *coder. Mam również odwoływać ten Consumer Group Example, z których wszystkie zostały pomocne, jednak bez pomocy z tego błędu tak daleko .. To działa aż do tej części kodu (linia 73)Kafka Avro Consumer z problemami dekodera
dekodera Dekoder = DecoderFactory.get(). BinaryDecoder (byteArrayInputStream, null);
Próbowałem innych dekoderów i wydrukowałem zawartość zmiennej byteArrayInputStream, która wygląda jak sądzę, że można oczekiwać serializowanych danych avro (w wiadomości widzę schemat, niektóre dane i niektóre zniekształcone dane) Mam wydrukowano Bajty dostępne za pomocą metody .available(), która zwraca 594. Mam problem ze zrozumieniem przyczyny tego błędu. Apache Nifi służy do tworzenia strumienia Kafki z tym samym schematem z hdfs. Byłbym wdzięczny za każdą pomoc.
DZIĘKUJEMY @miguno, to było dokładnie to! Kołyszę się i toczę za pomocą dekodera do DataFileReader z dwiema liniowymi zmianami. DatumReader datumReader = new SpecificDatumReader (schema); DataFileStream dataFileReader = new DataFileStream (inputStream, datumReader); –
SparkleGoat
Korekta * Kołyszę się i toczę teraz, gdy zmieniłem na DataFileReader z dwiema zmianami liniowymi. Masz rację binaryDecoder nie był prawidłowym wyborem dla zadania. – SparkleGoat
Cieszę się, że się udało! –