当减速器数量减少时,键将是唯一的

时间:2015-07-19 17:31:22

标签: hadoop mapreduce

我想询问不同的键是否可以在同一个reducer中结束。如果我基于密钥相同的假设构建我的减速器将是一种有效的方法。假设每个作业配置的减速器数量为5,并且我有来自地图输出的唯一键是10,理想情况下它应该需要10个减速器,相同的减速器方法现在将接收2种不同类型的键。考虑散列分区,意味着减少器数较少的场景。

2 个答案:

答案 0 :(得分:2)

通常,您不能假设1个reducer只会收到一个键。 例如,如果您的映射器输出N个键N>1,如果您设置了1个reducer,则唯一的reducer将接收所有键。

但是如果您控制number of different keys = number of reducers,那么您可以假设每个reducer将始终接收相同的密钥。 例如,如果您的映射器输出正好N个键,并且如果您精确设置N个减速器,那么每个减速器将只接收1个键。

答案 1 :(得分:0)

如果你定义了一个实现WritableComparable的类,你可以将它用作键并为equals ans hashCode方法定义你自己的规则,这样你就可以根据你想要的规则将不同的键发送到同一个reducer。