1.1Mapreduce模型简介
Mapreduce是一种可用于数据处理的编程模型,Hadoop上可以运行各种语言版本的Mapreduce程序。Mapreduce程序是并行运行的,采用了分治的思想。编程核心思想:键值对思想
Mapreduce只需要用Map和Reduce的思想即可解决问题,即编写map()和reduce()函数
Mapreduce编程的特点:
- 开发简单
- 可扩展性强
- 容错性强
1.2 Mapreduce运行机制简介
Mapreduce发展过程中经历了两个版本:MRv1和YARN/MRv2
- MRv1的运行环境由Job Tracker和Task Tracker两部分组成
服务 | 功能 |
Job Tracker | 资源管理&所有作业的控制 |
Task Tracker | 主要是接收Job Tracker的命令并执行 |
- MRv2:基于YARN的第二代MapReduce的计算框架
提出了全新资源管理的框架YARN。
JobTracker | ResourceManager | 负责所有应用程序的资源分配 |
ApplicationManager | 仅负责管理一个应用程序 |
1.3Mapreduce架构优缺点
1.优点
- 良好的扩展性
- 高容错性
- 易于编程
- 适合PB级别以上的大数据的分布式离线批处理
2.局限性
- Mapreduce执行速度慢
- Mapreduce过于底层
- 不是所有算法都能用Mapreduce实现