2012-06-27 27 views
1

提交作业后是否有任何方法来设置减少任务的数量?例如,如果我需要根据起始字母表收集英语单词,则可以将减少任务的数量直接设置为26.但是,如果情景出现,无法预先确定所需的缩减器数量,是否有任何方法可以完成需求?这里的要求与群集上的节点数量无关,只取决于正在处理的密钥。举例来说,每当一个新的密钥被满足时,减速器的数量就增加1。 预先感谢您的支持。Hadoop MR应用程序中减少的动态数量

回答

2

是否有任何方法可以在提交作业后设置减少任务的数量?

没有

例如,如果我需要根据字母开始收集的英文单字,可以直接设置的减少任务的数量为26

即使在上述情况下,你不需要26个减速器,但只需要1个减速器。 Hadoop框架为每个键重复调用reduce函数。 MultipleOutputFormat可用于根据键/值对(第一个字母)将文字写入不同的文件。

作业减速器数量的标准应该是其正在处理的数据量。另外,请记住,花时间最长的减速器将决定完成作业的时间。

+0

不仅要提到的是,在26个减速器的情况下,每个人都会从字母表中获得单个字符。 HashPartitioner可以分配两个字符和一个简单的reducer。 –

+0

@ Praveen,信息是有帮助的。 –

+0

@ Thomas:我没有提到散列分配器。我提到了定制分区器。我不明白你的评论。无论如何,我说的是根据密钥的charAt(0)将每个转换为reducer。也许我错误地理解了你的评论。 –

相关问题