开发者社区> 问答> 正文

怎么理解 MapReduce 过程的各个阶段?

怎么理解 MapReduce 过程的各个阶段?

展开
收起
Medusa 2022-01-13 18:13:56 1059 0
1 条回答
写回答
取消 提交回答
  • 整个 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可下载完整版

    2022-01-13 20:25:04
    赞同 展开评论 打赏
来源圈子
更多
收录在圈子:
阿里云开发者社区官方技术圈,用户产品功能发布、用户反馈收集等。
问答排行榜
最热
最新

相关电子书

更多
Flink中的两类新型状态存储 立即下载
为并行图数据处理提供高层抽象/语言 立即下载
实时计算正当时-Apache Flink 理论和实战精解 立即下载