专业的编程技术博客社区

网站首页 > 博客文章 正文

大数据开发工程师-面试题-Hadoop(Yarn的工作流程)

baijin 2024-10-14 08:14:22 博客文章 4 ℃ 0 评论

Yarn的工作流程

注意点说明:

1. Yarn Job执行的过程中,只会在某一个NodeManager节点上开启一个名为MRAppMaster的进程;

2. MRAppMaster进程的作用是:

(1) 为所有的NodeManager执行任务向ResourceManager申请资源(CPU+内存+网络等);

(2) 触发任务(MapTask,ReduceTask)的正式执行;

3. 真正负责计算的进程名为YarnChild,NodeManager是YarnChild进程的守护进程,负责监控YarnChild的运行状态;

4. Yarn Job执行完毕之后,诸如YarnChild,MRAppMaster进程都会结束,但是,ResouceManager,NodeManager进程一直处于待命状态,等待下一个Yarn Job任务的到来;

5. Container不是一个进程,Container中记录了MRAppMaster进程向RM进程申请的资源信息,申请的资源最终是给YarnChild进程使用的;

Yarn的工作流程:

(1)首先,客户端向整个集群提交MapReduce作业,并向ResouceManager申请一个作业id;

(2)然后,ResouceManager给客户端返回该作业资源的提交路径和作业id;

(3)这时候,客户端根据ResouceManager返回来作业提交路径,将jar包、切片信息和配置文件信息提交到指定路径下;

(4)当客户端提交完资源后,开始向ResouceManager申请运行MRAppMaster;

(5)ResouceManager收到客户端的请求之后,会将客户端提交的job初始化成一个个task,并且放入到容量调度器中;

(6)当某一个空闲的NodeManager领取到该作业之后,该NodeManager就开始创建Container容器,启动MRAppMaster进程,并且下载客户端提交的资源到本地;

(7)接着,MRAppMaster进程向ResouceManager申请运行多个MapTask任务资源;

(8)ResouceManager将运行的MapTask任务分配给空闲的NodeManager,NodeManager分别领取到任务后,开始创建容器,并且启动运行MapTask任务;

(9)当所有的MapTask任务运行完成之后,MRAppMaster进程向ResouceManager申请运行多个ReduceTask任务资源;

(10)当所有的ReduceTask任务运行完毕之后,MapReduce程序会向ResouceManager申请注销自己,并释放资源;

(每日1小题,进步1点点)

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表