gpt4 book ai didi

hadoop - canopy聚类算法中如何增加reducer的数量

转载 作者:可可西里 更新时间:2023-11-01 15:06:07 25 4
gpt4 key购买 nike

我正在使用 mahout 运行树冠聚类算法。

这是我通过 mahout 命令行运行的命令。

mahout canopy -i /mahout/o_seqsparse/tfidf-vectors -o /mahout/o_canopy -dm org.apache.mahout.common.distance.SquaredEuclideanDistanceMeasure -ow -t1 100 -t2 50

下面是 map & reduce 任务运行的数量:

没有。 map task 运行 --> 6

没有。 reduce task 运行 --> 1

但是因为一个 reducer,这花费了太多时间。我想,如果我能够增加 reduce 任务的数量,那么我会获得更好的性能。

我还尝试使用 mapred-site.xml 文件 ma​​pred.map.tasks, ma​​pred.reduce.tasks 增加 map reduce但这没有任何效果,它仍然以 1 个 reduce 运行。

最佳答案

正如 Abhiroop Sarkar 在他的回答中提到的那样,使用单个 reducer 是硬编码的。然而,这不仅仅是使用一个或多个 reducer 能带来多少 yield 的问题。您应该不要使用多个 reducer,否则算法将无法正确运行。原因是通过在这一步使用单个 reducer ,所有冠层中心将相互比较,确保它们不会彼此“太近”。

因此,您正确指定为该算法瓶颈的内容无法更改。事实上,如果你有太多的树冠中心,它也会耗尽内存。恕我直言,这不是原始顺序算法的理想转换,因为它不能完全利用并行编程,但它是 MapReduce 中唯一可用(和/或可能)的算法。

简而言之,单个 reducer 用于使树冠中心彼此远离。 使用更多的 reducer 会产生错误的结果。

关于hadoop - canopy聚类算法中如何增加reducer的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25993572/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com