avro.codec не работает в коннекторе приемника hdfs для быстрого сжатия - PullRequest
0 голосов
/ 09 октября 2018

Я использую сливной коннектор hdfs-приемника, я вставляю данные в формате avro.

Я хочу сжать данные с помощью мгновенного сжатия.

Кафка: делает Confluent'sПоддержка HDFS-коннектора сжатия Snappy? Я использовал решение, упомянутое в теме выше

Я добавил конфигурацию

avro.codec = snappy

Однако это не сработалодля меня Как и в, созданные файлы не были сжаты с мгновенным сжатием.Обычно, когда я запускаю задания на спарк, мои файлы добавляются с расширением .snappy. Однако в этом случае я не вижу, что это происходит.Я предполагаю, что мои файлы не сжимаются с snappy.

Есть ли какая-либо другая конфигурация, на которой мне не хватает?

1 Ответ

0 голосов
/ 11 октября 2018

Если у вас есть инструменты Avro, вы можете использовать их для проверки файла

$ java -jar avro-tools-1.8.1.jar getmeta kafka-connect-file.avro

avro.schema {"type":"record","name":"...
avro.codec  snappy

Также с помощью шестнадцатеричного редактора

$ cat kafka-connect-file.avro | xxd | grep -B1 snappy

00001c00: 656e 7422 7d14 6176 726f 2e63 6f64 6563  ent"}.avro.codec
00001c10: 0c73 6e61 7070 7900 9fd1 5fb0 2a3a 45ba  .snappy..._.*:E.

Чтобы преобразовать файл вAvro-файл не snappy, вы можете использовать recodec инструментов Avro.

$ java -jar avro-tools-1.8.1.jar recodec kafka-connect-file.avro > non-snappy.avro
$ ls -l *.avro  # Should see slight difference in Avro file sizes
...