Java 尝试理解基本WordCount MapReduce示例

Java 尝试理解基本WordCount MapReduce示例,java,hadoop,mapreduce,bigdata,Java,Hadoop,Mapreduce,Bigdata,最近开始使用Hadoop,并努力理解一些事情。下面是我正在查看的一个基本WordCount示例(计算每个单词出现的次数): Map(字符串docid,字符串文本): 对于文本中的每个单词: 发射(第1项); 减少(字符串项、迭代器值): 整数和=0; 对于每个v值: 总和+=v; 发射(期限、总和); 首先,Emit(w,1)应该做什么?我注意到在所有的例子中,我看到的第二个参数总是设置为1,但我似乎找不到关于它的解释 另外,我只是想澄清一下——我说的这个术语是键对形式的键和和和(分别是键-值

最近开始使用Hadoop,并努力理解一些事情。下面是我正在查看的一个基本WordCount示例(计算每个单词出现的次数):

Map(字符串docid,字符串文本):
对于文本中的每个单词:
发射(第1项);
减少(字符串项、迭代器值):
整数和=0;
对于每个v值:
总和+=v;
发射(期限、总和);
首先,
Emit(w,1)
应该做什么?我注意到在所有的例子中,我看到的第二个参数总是设置为1,但我似乎找不到关于它的解释

另外,我只是想澄清一下——我说的这个术语是键对形式的键和和和(分别是键-值对形式的和)是正确的吗?如果是这种情况,那么这些值是否只是从映射中发出的每个项的1的列表?这是我能理解它的唯一方法,但这些只是假设

对于noob的问题我深表歉意,我已经看过了很多教程,但是很多时候我发现使用了很多令人困惑的术语,总体来说,基本的事情比实际情况更加复杂,所以我很难理解这一点

谢谢你的帮助

以该输入为例,以字数输入为例

Mapper将把这个句子分成几个单词

Take,1
this,1
input,1
as,1
an,1
example,1
word,1
count,1
input,1
然后,reducer接收相同单词的“groups”(或key)和类似的分组值列表(并对键进行额外排序,但这对于本例并不重要)

如您所见,键
input
已被“简化”为单个元素,您可以循环和求和这些值,并像这样发出

Take,1
this,1
input,2 
etc...
好问题

如前所述,映射器输出一系列
(键,值)
对,在这种情况下,还原器接收到的每个单词的形式为
(字,1)
,分组为
(键,)
,汇总列表中的术语并返回
(键,和)
。请注意,进行分组的不是减速器;这是地图还原环境

该模型与我们以前使用的模型不同,并且通常不清楚如何在此模型中实现算法。(例如,考虑一下如何实现k-means聚类。)


我推荐Leskovec等人免费提供的第2章。另请参见。

感谢您的解释和资源-我将看一下这些书/幻灯片。
Take, (1)
this, (1)
input (1, 1)
etc...
Take,1
this,1
input,2 
etc...