Hadoop核心组件—Yarn的工作流程
Hadoop核心组件—Yarn的工作流程
一、作业提交阶段
- Client 向整个集群提交 Job,同时申请一个 job_id
- ResourceManager 收到 Client 的请求后,给 Client 返回该 job 资源的提交路径、hdfs 路径、job_id (每一个 job 都有一个唯一的 job_id)
- Client 收到 ResourceManager 的响应后,将 Jar包、Configuration信息、InputSplit(数据分片信息)等数据到指定的资源提交路径
- Client 向 ResourceManager 发送执行作业请求
二、作业初始化阶段
- ApplicationManager 将 Job 添加到 ResourceScheduler(资源调度器),其维护了一个 job队列
- 当轮到任务执行,ResourceScheduler 通知 ApplicationManager 有空闲的 NodeManager 可以用来执行当前任务
- ApplicationManager 调用分配给它的 NodeManager,在其中开辟一个 Container,并在容器中启动需要被执行的Job的 ApplicationMaster,ApplicationMaster 获取 hdfs 上提交的文件,根据分片信息生成 Task
三、任务分配阶段
- ApplicationMaster 向 ResourceManager 申请运行 Task 任务的资源
- ResourceManager 将需要运行的 Task 任务分配给空闲的 NodeManager,NodeManager 领取任务并创建用于执行任务的 Container
四、任务运行阶段
- ApplicationMaster 通知所有接收到任务的 NodeManager 启动计算
- NodeManager 启动计算
- 如果任务执行完有后续的 Task,则向 ResourceManager 申请 Container 执行后续 Task
- 所有的 job 执行完后,ApplicationMaster 向 ResourceManager 申请注销自己
五、任务完成阶段
- 框架更新计算的进度和状态
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Hurried1y!
评论