gpt4 book ai didi

java - 一个reduce与多个reducer具有后处理,用于对单词进行计数和排序。哪一个更有效和可扩展?

转载 作者:行者123 更新时间:2023-12-02 21:04:39 24 4
gpt4 key购买 nike

我正在通过一个MapReduce作业对单词进行排序(按值)。实现此目的的两种方法:

  • 使用一个reducer并将所有内容保存在reduce函数中的HashMap中,并按cleanUp函数中的值对所有内容进行排序,然后将所有内容写入文件。
  • 在MapReduce作业之后,使用多个reducer并在HDFS中保存单词数。 MR之后,使用Java对所有内容进行排序。

  • 从效率和可伸缩性的 Angular 来看,哪种解决方案更好。

    最佳答案

    第二个变体不提供全局排序,例如如果您有2个reducer,则结果文件可能是

    part-r-00000
    word1 1
    word2 3

    part-r-00001
    word3 2
    word4 5

    即使您按值对每个文件排序,也很难按 word4-word2-word3-word1降序遍历单词。您可以通过一些技巧来并行阅读。

    另一方面,单个化简器的性能较慢,因为它必须处理所有数据。同样,您可能没有足够的内存将所有数据保留在reducer JVM堆中。

    如果可能,我会选择单个 reducer 。

    关于java - 一个reduce与多个reducer具有后处理,用于对单词进行计数和排序。哪一个更有效和可扩展?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42320726/

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