【发布时间】:2016-03-29 16:07:54
【问题描述】:
最近开始使用 Hadoop 并努力理解一些事情。这是我正在查看的一个基本 WordCount 示例(计算每个单词出现的次数):
Map(String docid, String text):
for each word term in text:
Emit(term, 1);
Reduce(String term, Iterator<Int> values):
int sum = 0;
for each v in values:
sum += v;
Emit(term, sum);
首先,Emit(w,1) 应该做什么?我注意到,在我查看的所有示例中,第二个参数始终设置为 1,但我似乎找不到关于它的解释。
另外,为了澄清一下 - 我是否正确地说 term 是键,而 sum 在 Reduce 中形成键值对(分别)?如果是这种情况,values 是否只是从 Map 发出的每个 term 的 1 列表?这是我能理解它的唯一方法,但这些只是假设。
对于这个菜鸟问题,我深表歉意,我看过教程,但很多时候我发现使用了很多令人困惑的术语,而且总体上的基本内容比实际情况更复杂,所以我正在苦苦挣扎有点难以理解。
感谢任何帮助!
【问题讨论】:
标签: java hadoop mapreduce bigdata