哈多普。将结果缩减为单个值

标签 hadoop mapreduce

我开始学习 Hadoop,对 MapReduce 有点困惑。对于结果本身是键值对列表的任务,一切似乎都很清楚。但我不明白我应该如何解决结果为单个值的任务(例如,输入小数的平方和,或输入点的质心)。

一方面,我可以将映射器的所有结果放入同一个键。但据我所知,在这种情况下,唯一的 reducer 将管理整个数据集(计算总和或平均坐标)。这看起来不是一个好的解决方案。

我可以成像的另一个方法是对映射器结果进行分组。比如说,处理示例 0-999 的映射器将生成等于 0 的键,1000-1999 将生成等于 1 的键,依此类推。至于 reducers 仍然会有多个结果,则有必要构建 reducers 链(将重复减少直到只剩下一个结果)。它看起来计算效率更高,但有点复杂。

我还是希望Hadoop有现成的工具,执行reducer的叠加,以最大限度地提高将整个数据归约为单个值的效率。虽然我没有找到。

解决结果为单个值的任务的最佳做法是什么?

最佳答案

如果您能够根据可交换减少重新制定您的任务,您应该查看 Combiners .无论您如何看待它,它都可以显着减少要洗牌的数据量。

关于哈多普。将结果缩减为单个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12822687/

相关文章:

hadoop - 我正在尝试将文件中的所有数字相加,该文件包含以空格分隔的数字,并且使用 MapReduce 包含在多行中

hadoop - 并行运行多个 map task

java - "process information unavailable", linux 中的 jps 命令

hadoop - mapreduce wordcount 程序中的驱动程序未调用 reducer

hadoop - 如何使用SequenceFileInputFormat将字节数组序列化为本地文件

hadoop map reduce二次排序

hadoop - Hadoop访问控制异常:权限

hadoop - 上一个:无法在已创建的包含数据的表上创建分区

hadoop - 从网站检索数据-hadoop

hadoop - Apache Hama 和Hadoop Mapreduce 一样有监控网页吗?