gpt4 book ai didi

hadoop - Hadoop 的 MapReduce 中的 "Map"和 "Reduce"函数

转载 作者:可可西里 更新时间:2023-11-01 15:17:48 24 4
gpt4 key购买 nike

我一直在看 hadoop 的这个字数统计示例: http://hadoop.apache.org/docs/r1.0.4/mapred_tutorial.html#Source+Code

而且我对 Map 函数有点困惑。在所示的 map 函数中,它接受一个 LongWritable 类型的“键”,但这个参数从未在 Map 函数的主体中使用。应用程序程序员希望 Hadoop 为这个 key 传递什么?如果 map 函数只是从一行文本或其他内容中解析值,为什么它需要一个键。有人可以给我一个输入需要键和值的例子吗?我只看到 map 为 V1 -> (K2, V2)。

另外一个问题:在hadoop的真正实现中,他们的多个归约步骤是不是?如果是这样,如果函数是(K2,V2)->(K3,V3),hadoop如何多次应用相同的归约函数?如果再进行一次归约,需要接受类型(K3, V3)...

谢谢!

最佳答案

那里有一个键,因为 map() 方法总是传递一个键和一个值(以及一个上下文)。是否实际使用键和/或值取决于您。在这种情况下,键表示正在读取的文件中的行号。字数统计逻辑不需要那个。 map() 方法仅使用值,在文本文件的情况下,该值是文件的一行。

关于您的第二个问题(实际上应该是它自己的堆栈溢出问题),您可能在 hadoop 工作流中有任意数量的 map/reduce 作业。其中一些作业将读取作为输入的预先存在的文件,而其他作业将读取其他作业的输出。每个作业将有一个或多个映射器和一个 reducer 。

关于hadoop - Hadoop 的 MapReduce 中的 "Map"和 "Reduce"函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15672382/

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