hadoopmapreduce如何在mapper和reducer之前处理相同的键/值对?

ktecyv1j  于 2021-06-03  发布在  Hadoop
关注(0)|答案(3)|浏览(429)

它会留下一个并删除其他的,还是将它们全部传递到mapper和reducer中?

m3eecexj

m3eecexj1#

hadoop框架不会忽略/删除任何重复的kv对。必须在用户定义的map和reduce函数中对kv对进行任何忽略/修改。
框架读取输入数据并调用用户定义的map函数,将输入数据作为kv对,map函数经过一些处理后发出kv对。这些中间kv对被排序/合并,用户定义的reducer函数被反复调用,对于每个键,reduce函数将再次发出kv对。
建议您购买hadoop:权威指南,第3版,以便更好地了解mapreduce和hadoop。

yruzcnhs

yruzcnhs2#

mapreduce模型将在map阶段独立读取它们,并在reduce阶段按键分组,如@saurabh所述

yqhsw0fo

yqhsw0fo3#

相同的键值对

Map阶段

由于键值对是相互独立的,所以Map程序永远不会查找/知道相同的键值对
前任:

key  value
1       2
1       2
2       5
3       19

map(k,v)
{
 emit(k,v)
}

发射:1,2 1,2 2,5 3,19

还原相

通过对键上的值进行排序来处理相同的键-值对,因此忽略与键关联的值,因此每个值都被视为唯一的。
前任:

key    value 
1      {2,2}
2      {5}
3      {19}

相关问题