Ch05-Hadoop 之 MapReduce

Ch05-Hadoop 之 MapReduce

March 23, 2018
Apache Hadoop
hadoop

Mapreduce 是一个分布式运算程序的编程框架,是用户开发“基于 hadoop 的数据分析应用”的核心框架;Mapreduce 核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序,并发运行在一个 hadoop 集群上

1. MapReduce 架构 #

mapreduce

  1. MapReduce 分为两个阶段:Map 映射、Reduce 归约。
  • Map 阶段:对数据进行处理。
  • Reduce 阶段:对 Map 结果进行汇总。
  • Shuffle 过程:map 方法之后,reducer 方法之前是 Map 阶段和 Reduce 阶段的中间过程
  1. 不同阶段对应的 Task:
  • MapTask:负责 Map 阶段的整个数据处理流程。
  • ReduceTask:负责 Reduce 阶段的整个数据处理流程
  1. AppMaster:负责整个 MR 的过程调度及状态协调

2. MapReduce 处理流程 #

              map()       reduce()
   Input ---> Mapper ---> Reducer ---> Output
          |                  |            |
     InputFormat    Shuffle    OutpuFormat
          |                        |
    FileInputFormat          FileOutputFormat
          |                        |
    TextInputFormat          TextOutputFormat
          |          RecordReader       |          RecordReader
          |          |             |          |
         new  LineRecordReader     new  LineRecordReader

3. 参考文献 #

Hadoop 之 MapReduce