Yarn 工作机制

Yarn 工作机制

  • 客户端向 ResourceManager 申请运行程序
  • ResourceManager 检查是否有运行权限,如果有就会返回 jobid 和程序提交的资源路径
  • 客户端根据 ResourceManager 返回的信息,然后执行提交程序的资源到 /tmp/.../job_id目录下( 资源包括 jar 程序本身、job.split 逻辑切规划文件和 job.xml 配置文件)
  • 客户端资源上传成功后,向 ResourceManager 请求执行程序
  • ResourceManager 会将客户端请求转化为一个 Job 任务,并为该 Job 任务找到一个 NodeManger 启动容器(Container)用于运行 ApplicationMaster
  • 启动中的 ApplicationMaster 向 ResourceManager 注册自己,启动成功后与 ResourceManager 保持心跳
  • ApplicationManager 读取 tmp/..,/job_id/ 目录下 job.split 数据(申请资源的多少)并向 ResourceManager 申请与切片数量相应的容器(Container)
  • ResourceManager 根据请求返回可用的 NodeManger 的容器(Container) 所在的位置
  • 申请成功的容器(Container),由 ApplicationMaster 进行初始化。容器(Container)的启动信息初始化后,ApplicationManager 与对应的 NodeManager 通信,要求 NodeManager 启动容器
  • ApplicationMaster 执行 NodeManger 上启动容器运行 MapTask 或 ReduceTask 任务
  • 容器(Container)运行期间,ApplicationMaster 对 容器(Container)进行监控。容器(Container)通过 RPC 协议向对应的 ApplicationManager 汇报自己的进度和状态等信息
  • MapTask 执行结束,ApplicationMaster 向 ResourceManager 汇报,回收资源
  • ReduceTask 执行结束,ApplicationMaster 向 ResourceManager 汇报,回收资源
  • 所有的任务结束后,ApplicationMaster 申请运用结束,注销自己,并允许属于它的容器(Container)被收回
posted @ 2021-12-09 18:00  追こするれい的人  阅读(57)  评论(0)    收藏  举报