整个 MapReduce 过程可以分为数据输入阶段、Map 阶段、中间结果处理阶段(包括Combiner 阶段和 Shuffle 阶段)、Reduce 阶段及数据输出阶段。
(1)数据输入阶段:将待处理的数据输入 MapReduce 系统。
(2)Map 阶段:map() 函数中的参数会以键值对的形式进行输入,经过 map() 函数的一系列并行处理后,将产生的中间结果输出到本地磁盘。
(3)中间结果处理阶段:这个阶段又包含 Combiner 阶段和 Shuffle 阶段,对 map() 函数输出的中间结果按照键进行排序和聚合等一系列操作,并将键相同的数据输入相同的reduce() 函数中进行处理(也可以根据实际情况指定数据的分发规则)。
(4)Reduce 阶段:reduce() 函数的输入参数是以键和对应值的集合形式输入的,经过reduce() 函数处理后,产生一系列键值对形式的最终结果数据,并输出到 HDFS 中。
(5)数据输出阶段:数据从 MapReduce 系统输出到 HDFS。
以上内容摘自《海量数据处理与大数据技术实战》电子书,点击https://developer.aliyun.com/topic/download?id=8205可下载完整版
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。