MapReduce框架和操作流程

目录

一、MapReduce概念理解

1. Why MapReduce?

2. MapReduce的思想:分而治之(Divide and Conquer)

3. MapReduce的特性

二、MapReduce的核心组件

三、Map/Reduce框架

四、MapReduce具体操作流程(重点!)

1. Map/Reduce的执行流程(1.0版本)

2. Map/Reduce的执行流程(2.0版本)

3. Map/Reduce和Yarn

4. Shuffle(重点)

五、Map/Reduce函数的书写


一、MapReduce概念理解

MapReduce是一种由Google提出的分布式计算模型,主要用于搜索领域,解决海量数据的计算问题。

MapReduce由两个阶段组成:Map和Reduce,用户只需要实现map()和reduce()两个函数,即可实现分布式计算。

1. Why MapReduce?

海量数据在单机上处理因为硬件资源限制,无法胜任,而一旦将单机版程序扩展到集群来分布式运行,将极大增加程序的复杂度和开发难度,引入MapReduce框架后,开发人员可以将绝大部分工作集中在业务逻辑的开发上,而将分布式计算中的复杂性交由框架来处理。

解释:

  • 访问:交互型,例如MySQL,hive;批处理,流式数据,spark会解决交互型的问题。
  • 结构:动态模式,第一条记录3个字段,第二条记录可以5个字段。
  • 伸缩性:处理机器变成2倍,处理能力变成2倍。

2. MapReduce的思想:分而治之(Divide and Conquer)

MapReduce的操作分为5个步骤:

Input → Splitting → Mapping → Shuffling → Reducing

说明:MapReduce的执行过程中需要对数据进行拆分,而Hadoop在存储的过程中已经将数据实现了拆分存储。

3. MapReduce的特性

  • 自动实现分布式并行计算
  • 容错
  • 提供状态监控工具
  • 模型抽象简介,程序员易用

二、MapReduce的核心组件

三、Map/Reduce框架

说明:

  • 一个Map/Reduce作业(job)通常会把输入的数据集切分为若干独立的数据块,由map任务(task)以完全并行的方式执行数据处理过程。
  • 框架会对map的输出先进行排序,然后把结果输入给reduce任务。通常作业的输入和输出都会被存储在文件系统(HDFS)。

四、MapReduce具体操作流程(重点!)

1. Map/Reduce的执行流程(1.0版本)

2. Map/Reduce的执行流程(2.0版本)

3. Map/Reduce和Yarn

4. Shuffle(重点)

五、Map/Reduce函数的书写

例子:wordcount

  • map:输入,<4, "hello hadoop">,key为句子的位置,value为句子。输出,List(<"hello", 1>, <"world", 1>)。
  • reduce:输入,<"hello", [2, 3, 4, 1]>。输出,<"hello", 10>。

猜你喜欢

转载自blog.csdn.net/qq_25024883/article/details/82995823