【发布时间】:2015-08-12 15:02:48
【问题描述】:
我正在运行 map-reduce,我的输入被压缩,但没有 .gz(文件名)扩展名。
通常,当它们确实具有 .gz 扩展名时,Hadoop 会在将它们传递给映射器之前即时解压缩它们。但是,如果没有扩展,它就不会这样做。我无法重命名我的文件,因此我需要某种“强制”Hadoop 解压缩它们的方法,即使它们没有 .gz 扩展名。
我尝试将以下标志传递给 Hadoop:
step_args=[ "-jobconf", "stream.recordreader.compression=gzip", “-jobconf”,“mapred.output.compress=true”, “-jobconf”,“mapred.output.compression.type=block”, "-jobconf", "mapred.output.compression.codec=org.apache.hadoop.io.compress.GzipCodec"]
但是,映射器的输入仍然是解压缩的。我通过在映射器代码中将输入打印到映射器来验证这一点:
映射器输入:^_^@%r?T^B??\K??6^R?+F?3^D??b?^R,??!???a?^X? A??n?m?k?3id?o?z[?-?L2yt^P$n?T,^V????^??y^O^R?nno>}^B^E^N -7?^Z?'?I?OF4??-^Z^X4;????f?RH???^Z?Q??4#^W?I?^F??^]?f+ ???f0d??A??v?A3*????7?x?p??7?Mq?.g??{^FL?g?^Y+?6??I????^ V?C??I??$??ESCVd)K??}?Z??j?,3?{ ?}v???j???^??"?.??^L?^? LX^F??p???
任何关于如何即时解压缩的建议将不胜感激!
谢谢! 吉尔。
【问题讨论】:
-
你有没有想过这个问题?
-
我也对这个感兴趣...
标签: hadoop mapreduce emr elastic-map-reduce amazon-emr