如何使用bzip2 inputformat增加mapreduce的Map任务

nfeuvbwi  于 2021-06-04  发布在  Hadoop
关注(0)|答案(2)|浏览(360)

我开发了mr,它可以正确地处理运行多个Map任务的文本文件,但我需要在任何一个存档上运行作业。我的选择是bzip2存档。有了这样的档案,我的工作只有一个Map任务。
有人知道,我怎样才能增加Map任务吗?
hadoop版本:hadoop 0.20.2-cdh3u5
我试图用不同的参数编辑mapred-site.xml,但没有成功。

rryofs0p

rryofs0p1#

你的档案有多大?你的积木尺寸是多少?bzip2是可拆分的,因此当您的文件大小超过块大小并且bzip2编解码器配置正确时,您的文件将自动拆分,因此您的Map任务将自动增加。
中的属性 mapred-site.xml 它们可以指定作业的(中间)输出。当您使用压缩文件作为输入时,您应该在 core-site.xml 使用 io.compression.codecs .
另外,如果我是你,我会看看lzo。默认情况下,lzo档案是不可拆分的,但是有一种方法可以索引它们,使它们成为可拆分的。与bzip2相比,lzo压缩更少,但速度更快。我用bzip2压缩了一个32gb的文本文件。bzip2将文件压缩到1.6gb,但耗时6.5小时。当我用lzo做同样的事情时,它返回给我一个5gb的文件,但它在30分钟内就完成了。减压的差别更大。而且bzip2使用了更多的内存。
关于如何索引lzo文件,请看以下内容:https://github.com/twitter/hadoop-lzo

w7t8yxp5

w7t8yxp52#

根据该线程,还需要mapreduce-830,以便bzip2文件可拆分(hadoop-4012)以用于mapreduce作业。mapreduce-830在cdh3u5上不可用。

相关问题