使用 hadoop 和 map-reduce 框架,我认为 reduce tasks必须细粒度,以便不同的节点处理它们可以单独完成。
我认为密钥的数量会影响任务的粒度。那么,是键的数量还是它们的多样性是效率的重要因素?
例如,如果我只有一两把钥匙,这会有问题吗?
答案 0 :(得分:0)
所有相同的键应该在同一个减速器中结束,然后,如果你只有一个键,那么如果你设置了10个减速器,你真的只使用一个减速器。其余的减速器没有任何输出(但它们将被实例化)。
这是一个名为" skew data"并且您需要重新定义(并重新分配)您的密钥才能并行运行该过程。
理想情况下,数据应以具有相同数量记录的集合分布,这意味着所有减速器将具有相同的工作量。