您可以将 s3distcp 与 gzip 压缩输入一起使用吗?

Can you use s3distcp with gzipped input?

我正在尝试使用 s3distcp 来编译许多小的 gzip 文件,不幸的是,这些文件没有以 gz 扩展名结尾。 s3distcp 有一个 outputCodec 参数可用于压缩输出,但没有相应的 inputCodec。我正在尝试将 --jobconf 与 hadoop 流调用一起使用,但它似乎没有做任何事情(输出仍然是压缩的)。我使用的命令是

hadoop jar lib/emr-s3distcp-1.0.jar -Dstream.recordreader.compression=gzip \
           --src s3://inputfolder --dest hdfs:///data

知道会发生什么吗?我是 运行 AWS EMR AMI-3.9。

正如您在 s3distcp 代码中看到的:https://github.com/netshade/s3distcp/blob/b899910d04a112019ba695f29d3b0b3d9a785603/src/main/java/com/amazon/external/elasticmapreduce/s3distcp/CopyFilesReducer.java 第 197 行,s3distcp 依赖于文件扩展名来实例化 InputStream。则无法将输入格式设置为参数。