Это авро сообщение действительно?

У меня есть несколько примеров сообщений Avro от поставщика kafka, который выглядит так:

00000000  4f 62 6a 01 04 16 61 76  72 6f 2e 73 63 68 65 6d  |Obj...avro.schem|
00000010  61 ef bf bd 24 7b 22 74  79 70 65 22 3a 22 72 65  |a...${"type":"re|

Тот ef bf bd 24 Я ожидал, что длина схемы составит 2332 байта. У меня возникают проблемы с подтверждением того, что зигзагообразный вариант (почему длина, которая никогда не может быть отрицательной, будет зигзагообразным?) Является правильным значением. Я считаю, что это где-то в диапазоне 200К.

Я полагаю, что именно поэтому у меня возникают проблемы с использованием баночки с инструментами avro-tools для getmeta, getschema или преобразования в json.

Является ли это конкретной известной проблемой в версии Avro Tools 1.8.2 или на платформе Mac OS с java 1.8.0_102-b14 для этой версии инструмента?

Похоже, это было неправильно закодировано? Потому что все звонки на использование инструментов дают мне:

$ java -jar ~/Downloads/avro-tools-1.8.2.jar tojson dt20170607hr08_1496793109907_11_8229967.bin.1
log4j:WARN No appenders could be found for logger (org.apache.hadoop.metrics2.lib.MutableMetricsFactory).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
Exception in thread "main" java.lang.IllegalArgumentException
    at java.nio.ByteBuffer.allocate(ByteBuffer.java:334)
    at org.apache.avro.io.BinaryDecoder.readBytes(BinaryDecoder.java:288)
    at org.apache.avro.file.DataFileStream.initialize(DataFileStream.java:112)
    at org.apache.avro.file.DataFileStream.<init>(DataFileStream.java:84)
    at org.apache.avro.tool.DataFileReadTool.run(DataFileReadTool.java:71)
    at org.apache.avro.tool.Main.run(Main.java:87)
    at org.apache.avro.tool.Main.main(Main.java:76)

1 ответ

Решение

Похоже, у вас есть одна запись в файле Avro. Система, генерирующая файл Avro, использует более старую версию. У меня похожая проблема с Nifi работает 1.7.7. Объединяя две записи в файл Avro, мы смогли обойти эту проблему.

Avro 1.8.2 исправляет ошибку.

1.7.7 и 1.8.0/1.8.1 имеют одну проблему записи.

https://issues.apache.org/jira/browse/AVRO-1888

Другие вопросы по тегам