MapReduce
Google很明确的在已发表的论文中表示,MapReduce是其实现的一个分布式计算框架,其编程的模型命名为MapReduce,后续直接将模型名使用为框架名。
MapReduce模型将数据的处理方式抽象为map和reduce,其中map为映射,reduce为归约。
map映射表现为数据的一对一映射,reduce归约表示为另一种的映射方式,主要完成类似于归类的工作。
MapReduce认为,无论是多么复杂的数据处理流程也无非是map及reduce这两种数据映射方式。
MapReduce组件:
JobClient:用于把用户的作业任务生成Job的运行包,并存放到HDFS中。
JobinProgress:把Job运行包分解成MapTask和ReduceTask并存放于TaskTracker中。
JobTracker(Master):进行调度管理TaskTracker执行任务。
TaskTracker(Slave):执行分配下来的Map计算或Reduce计算任务。
MapReduce:通过JobClient生成任务运行文件,并在JobTracker进行调度指派TaskTracker完成任务。
- JobTracker:用于调度工作,分配任务,监控任务执行进度、监督TaskTracker的状态。 为集中式调度,实际的资源利用率只有
70% 左右,甚至会更低。 - TaskTracker:用于执行工作,汇报任务状态,可对应HDFS中的DataNode
使用MapReduce可以实现:
- 将数据集(输入数据)抽象成集合;
- 将数据处理过程使用map以及reduce进行表示;
- 对数据实现自定义的处理逻辑。
MapReduce流程相关可参考:
https://blog.csdn.net/qq_24908345/article/details/52791944