yarn架构和执行流程

yarn架构图

yarn的功能模块

  • ResourceManager
  • NodeManager
  • ApplicationMaster
  • Container

各个功能模块的作用

ResourceManager
  • 处理客户端的请求(启动/杀死)
  • 启动/监控ApplicationMaster(一个作业对应一个AM)
  • 监控NM
  • 系统的资源分配和调度
NodeManager
  • 定期向RM汇报本节点的资源使用请求和各个Container的运行状态
  • 接收并处理RM的container启停的各种命令
  • 单个节点的资源管理和任务管理
ApplicationMaster
  • 数据切分
  • 为应用程序向RM申请资源(container),并分配给内部任务
  • 与NM通信以启停task, task是运行在container中的
  • task的监控和容错
Container
  • 对任务运行情况的描述:cpu、memory、环境变量

YARN执行流程

  • 用户向YARN提交作业
  • RM为该作业分配第一个container(启动AM)
  • RM会与对应的NM通信,要求NM在这个container上启动应用程序的AM
  • AM首先向RM注册,然后AM将为各个任务申请资源,并监控运行情况
  • AM采用轮训的方式通过RPC协议向RM申请和领取资源
  • AM申请到资源以后,便和相应的NM通信,要求NM启动任务
  • NM启动我们作业对应的task

你可能感兴趣的:(yarn架构和执行流程)