我正在使用融合的hdfs接收器连接器,我以avro格式插入了数据。
我希望使用快速压缩来压缩数据。
Kafka: Does Confluent’s HDFS connector support Snappy compression? 我使用了上面线程中提到的解决方案
我添加了配置
avro.codec = snappy
但是,它对我没有用 与中一样,创建的文件未使用快速压缩进行压缩。 通常,当我运行Spark作业时,我的文件会附加.snappy文件扩展名 但是,在这种情况下,我看不到这种情况。我假设我的文件没有被快照压缩。
我还有其他配置吗?
答案 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