0

我开发了 mr,它可以正确处理运行多个地图任务的文本文件,但我需要在档案上运行作业。我的选择是 bzip2 存档。有了这样的档案,我的工作只需要一个地图任务。

有谁知道,我怎样才能增加地图任务?

Hadoop版本:Hadoop 0.20.2-cdh3u5

我尝试使用不同的参数编辑 mapred-site.xml,但没有成功。

4

2 回答 2

0

你的文件有多大?你的块大小是多少?Bzip2 是可拆分的,因此当您的文件大小超过您的块大小并且您的 Bzip2 编解码器配置正确时,您的文件将自动拆分,因此您的地图任务将自动增加。

中的属性mapred-site.xml用于指定作业的(中间)输出。当您使用压缩文件作为输入时,您应该在core-site.xmlusing中设置它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

于 2013-01-29T10:01:22.270 回答
0

根据此线程,还需要MAPREDUCE-830才能使 Bzip2 文件可拆分 ( HADOOP-4012 ) 用于 MapReduce 作业。MAPREDUCE-830在 CDH3u5 上不可用。

于 2013-01-29T11:11:24.887 回答