Quando ho tentato di eseguire Kafka Consumer with Avro sui dati con il mio schema rispettivo, restituisce un errore di "AvroRuntimeException: dati non validi. La lunghezza è negativa: -40". Vedo che altri hanno avuto problemi simili coverting byte array to json, Avro write and read e Kafka Avro Binary *coder. Ho anche fatto riferimento questa Consumer Group Example, che sono stati tutti utili, ma nessun aiuto con questo errore finora .. Funziona fino a questa parte del codice (linea 73)Problemi di Kafka Avro Consumer with Decoder
Decoder = DecoderFactory.get(). BinaryDecoder (byteArrayInputStream, null);
Ho provato altri decoder e stampato il contenuto della variabile byteArrayInputStream che mostra come ritengo che i dati avro serializzati debbano essere visualizzati (nel messaggio riesco a vedere lo schema e alcuni dati e alcuni dati non corretti). la stampa dei byte disponibili utilizzando il metodo .available(), che restituisce 594. Ho difficoltà a capire perché questo errore sta accadendo. Apache Nifi è usato per produrre il flusso di Kafka con lo stesso schema di hdf. Gradirei qualsiasi aiuto.
GRAZIE @miguno era esattamente così! Sto oscillando e rotolando usando il Decoder per il DataFileReader con due cambi di riga. DatumReader datumReader = new SpecificDatumReader (schema); DataFileStream dataFileReader = new DataFileStream (inputStream, datumReader); Correzione –
SparkleGoat
* Sto oscillando e rotolando ora che sono passato a DataFileReader con due cambi di riga. Hai ragione binaryDecoder non era la scelta giusta per il lavoro. – SparkleGoat
Felice che abbia funzionato! –