MapReduce并行计算框架
基本知识
前言
- MapReduce计算框架是Google提出的一种并行计算框架,是Google云计算模型MapReduce的java开源实现,用于大规模数据集(通常1TB级以上)的并行计算。但其实,MR不仅是一种分布式的运算技术,也是简化的分布式编程模式,是用于解决问题的程序开发模型。
核心概念
计算模型
- 计算模型的 核心概念 是”Map(映射)”和”Reduce(归约)”。用户需要指定一个Map函数,用来把一组键值对映射成一组新的键值对,并指定并发的Reduce函数用来合并所有的具有相同中间key值的中间的value值。作业的输入和输出都会被存储在文件系统中。整个框架负责 任务的调度和监控,以及重新执行已经失败的任务 。
系统架构
-
在系统架构上,MapReduce框架是一种主从架构,由一个单独的JobTracker节点和多个TaskTracker节点共同组成。
1)JobTracker是MapReduce的Master,负责调度构成一个作业的所有任务,这些任务分布在不同 的TaskTracker节点上,监控它们的执行,重新执行已经失败的任务,同时提高状态和诊断信息给作业客户端。
2)TaskTracker是MapReduce的Slave,仅负责运行由Master指派的任务执行。
作业配置
- 对于用户来讲,我们应该在应用程序中 指明输入和输出的位置路径,并通过实现合适的接口或抽象类来提供Map和Reduce函数,再加上其他作业的参数,就构成了作业配置。
计算流程与机制
作业提交和初始化
- (作业提交)命令行提交->作业上传->产生切分文件->提交作业到JobTracker->(作业初始化)->(Setup Task->Map Task->Reduce Task->Cleanup Task)
具体过程会在之后的文章介绍
Mapper
- Mapper是MapReduce框架给用户暴露的Map编程接口,用户在实现自己的Mapper类时需要<