它会留下一个并删除其他的,还是将它们全部传递到mapper和reducer中?
m3eecexj1#
hadoop框架不会忽略/删除任何重复的kv对。必须在用户定义的map和reduce函数中对kv对进行任何忽略/修改。框架读取输入数据并调用用户定义的map函数,将输入数据作为kv对,map函数经过一些处理后发出kv对。这些中间kv对被排序/合并,用户定义的reducer函数被反复调用,对于每个键,reduce函数将再次发出kv对。建议您购买hadoop:权威指南,第3版,以便更好地了解mapreduce和hadoop。
yruzcnhs2#
mapreduce模型将在map阶段独立读取它们,并在reduce阶段按键分组,如@saurabh所述
yqhsw0fo3#
相同的键值对
由于键值对是相互独立的,所以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}
3条答案
按热度按时间m3eecexj1#
hadoop框架不会忽略/删除任何重复的kv对。必须在用户定义的map和reduce函数中对kv对进行任何忽略/修改。
框架读取输入数据并调用用户定义的map函数,将输入数据作为kv对,map函数经过一些处理后发出kv对。这些中间kv对被排序/合并,用户定义的reducer函数被反复调用,对于每个键,reduce函数将再次发出kv对。
建议您购买hadoop:权威指南,第3版,以便更好地了解mapreduce和hadoop。
yruzcnhs2#
mapreduce模型将在map阶段独立读取它们,并在reduce阶段按键分组,如@saurabh所述
yqhsw0fo3#
相同的键值对
Map阶段
由于键值对是相互独立的,所以Map程序永远不会查找/知道相同的键值对
前任:
发射:1,2 1,2 2,5 3,19
还原相
通过对键上的值进行排序来处理相同的键-值对,因此忽略与键关联的值,因此每个值都被视为唯一的。
前任: