好程序员大数据干货分享Mapreduce中job的提交流程

1、MapReduce的定义:node

  MapReduce是面向大数据并行处理的计算模型、框架和平台。app

  它的主要思想是:map(映射)和reduce(归约)负载均衡

  一、MapReduce是一个基于集群的高性能并行计算平台框架

  二、MapReduce是一个并行计算与运行软件框架性能

  三、MapReduce是一个并行程序设计模型与方法学习

2、MapReduce的主要功能:大数据

  一、数据划分和计算任务调度优化

  二、数据/代码互定位设计

  三、系统优化队列

  四、出错检测和恢复

3、计算任务调度中job的提交流程

  遇到的问题:

  在学到这的时候,咱们会面临一些问题:

  一、首先面临的问题就是数据是如何分布的?

  二、一个超大文件按照那种方式切割下来,分别丢到不一样的机器上?

  三、按照某种方式切割下来后,是如何丢到不一样机器上去的?

  四、某个机器分配到什么任务?如何分配的?

  五、拿到任务后如何解决的?

  六、带着这些问题,咱们就须要学习一下job的提交流程,从该流程中去寻找咱们问题的答案。

  Job的具体提交流程以下图所示:

 

  咱们用文字归纳以下:

一、  客户端提交job到resourcemanager(rm)

二、  rm将其放到等待队列,返回jobid和文件路径信息

三、  客户端将所须要计算的资源,上传到hdfs上(包括job信息和分片信息)的存储路径

四、  客户端给rm返回一个资源准备好的信息,job放入等待队列,告诉他能够启动job,等待rm进行调度

五、  rm在调度以前,申请一个资源nodemanager(nm),nm启动container,它接收到任务到hdfs上将资源获取到container,而后跟客户端交互已经获得须要计算的资源,客户端向其发送启动applicationmaster(am)的命令

六、  am启动起来后,经过解析分片信息向rm申请运算资源(maptask)

七、  rm收到信息查看nm资源状况,经过负载均衡分配所须要的机器,nm每一次心跳都会从job的描述信息查询本身所分配到的任务,接收到任务消息的机器会从hdfs上拿取计算资源,而后跟am交互,am发送启动maptask的命令。

八、  Maptask结束后,通知am,而后释放maptask资源,am向rm发出信息,申请reducetask的资源

九、  rm分配资源,am启动reducetask

十、  reducetask收集maptask完成的数据,启动reduce逻辑。执行完成后,通知am,而后释放reducetask的资源。am通知rm。am释放资源。

相关文章
相关标签/搜索