avro.codec无法在hdfs接收器连接器中进行快速压缩

时间:2018-10-09 13:35:27

标签: apache-kafka hdfs avro apache-kafka-connect confluent

我正在使用融合的hdfs接收器连接器,我以avro格式插入了数据。

我希望使用快速压缩来压缩数据。

Kafka: Does Confluent’s HDFS connector support Snappy compression? 我使用了上面线程中提到的解决方案

我添加了配置

avro.codec = snappy

但是,它对我没有用 与中一样,创建的文件未使用快速压缩进行压缩。 通常,当我运行Spark作业时,我的文件会附加.snappy文件扩展名 但是,在这种情况下,我看不到这种情况。我假设我的文件没有被快照压缩。

我还有其他配置吗?

1 个答案:

答案 0 :(得分:1)

如果有可用的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文件,可以使用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