Yarn的工作流程

Yarn是用于进行任务调度资源管理的框架.

Yarn的组件主要包括:

ResourceManager : 资源管理

Application Master : 任务调度

NodeManager : 节点管理,负责执行任务

Yarn的工作流程如下图所示:

Yarn的工作流程_第1张图片

  1. 用户向Yarn提交一个MR(MapReduce)任务,由ResourceManager中的Applications Manager接收

  2. Applications Manager负责资源的分配, 根据任务计算出所需要的资源,如cpu资源和内存资源,将这些资源封装成Container

  3. Applications Manager将任务和Container发送给Resource Scheduler(资源调度器)

  4. Resource Scheduler将任务和Container分配给Application Master, 由Application Master进行二次划分, 将任务分解成MapTask和ReduceTask

  5. Application Master将MapTask和ReduceTask分配给NodeManager,三个NodeManager随机接收到MapTask或者ReduceTask , 由NodeManager负责任务的执行

  6. 注意,Application Master会对NodeManager的任务完成情况进行监控, 而Applications Manager会对NodeManager的任务资源使用情况进行监控.

  7. 如果NodeManager上的任务执行成功,会把成功信息发送给Application Master和Applications Manager, 然后Applications Manager会进行资源的回收.

  8. 如果NodeManager上的任务执行失败,会把失败信息发送给Application Master和Applications Manager, 然后Applications Manager仍然会进行资源的回收. 此时Application Master会向Applications Manager申请资源, 重新将这个任务分配给这个NodeManager , 循环往复, 直到任务执行成功.

 

你可能感兴趣的:(Yarn的工作流程)