2012-03-04 53 views

回答

1

检入org.apache.hadoop.mapreduce.ClusterMetrics;它应该包含函数来获取您要查找的信息。我在笔记中有其他的东西;但是这应该提供您正在查找的群集信息以及一些其他详细信息。

我正在研究减速器的数量,并计划使用getReduceSlotCapacity函数来了解作业可以消耗多少个减速器。

HTH

+0

但是,它属于已在0.20.203中弃用的mapred。我确实在mapreduce中检查过,但没有运气。那么,你能否提出一个替代方案? – 2012-03-04 04:45:38

+0

@PiyushKansal:谢谢。我从笔记中抓取了最初的信息;不是更新的。 – Nija 2012-03-04 08:39:27

+1

ClusterStatus是您在新API中查找的内容。 – 2012-03-04 14:34:31

1

依赖于输入到作业和簇容量的降低实际创建的数量。所以从某种意义上说,你不必担心这一点。只是不要硬编码num_reducers值。它会在运行时相应地选择。

此外,您可以通过命令行传递值(即。-D mapred.reduce.tasks)来控制在运行时产生的减少量。

+0

谢谢TejasP。你在某种程度上是正确的。但是我在我的实现中使用了Partitioner,因此确保Reducer的数量至少等于可能分区的总数是非常重要的。 而这就解释了这个问题背后的动机。 – 2012-03-04 21:22:38

+0

这是不正确的...如果您不指定,Hadoop默认为单个(IdentityReducer)缩减器。如果将它设置为高于群集容量的#,它将“节流”,但它不会根据您的工作任意选择合适的减速器数量(与映射器一样)。 – rICh 2013-05-07 18:23:48

相关问题