我正在尝试使用s3distcp来编写很多小的gzip压缩文件,但这些文件的结尾不是gz
扩展名。 s3distcp有一个outputCodec
参数,可用于压缩输出,但没有对应的inputCodec
。我正在尝试在Hadoop流调用中使用--jobconf
,但它似乎没有做任何事情(输出仍被压缩)。我正在使用的命令是
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。这样就无法将输入格式设置为参数。
关于hadoop - 可以将s3distcp与压缩输入一起使用吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32218584/