YARN 架构

 

1、ResourceManager(RM)

ResourceManager 将各个资源部分(计算、内存、带宽等)精心安排给基础 NodeManager(YARN 的每节点代理)。ResourceManager 还与 ApplicationMaster 一起分配资源,与 NodeManager 一起启动和监视它们的基础应用程序。在此上下文中,ApplicationMaster 承担了以前的 TaskTracker 的一些角色,ResourceManager 承担了 JobTracker 的角色。

总的来说,RM有以下作用

  • 处理客户端请求

  • 启动或监控ApplicationMaster

  • 监控NodeManager

  • 资源的分配与调度

2、ApplicationMaster(AM)

ApplicationMaster 管理在YARN内运行的每个应用程序实例。ApplicationMaster 负责协调来自 ResourceManager 的资源,并通过 NodeManager 监视容器的执行和资源使用(CPU、内存等的资源分配)。

总的来说,AM有以下作用

  • 负责数据的切分

  • 为应用程序申请资源并分配给内部的任务

  • 任务的监控与容错

3、NodeManager(NM)

NodeManager管理YARN集群中的每个节点。NodeManager 提供针对集群中每个节点的服务,从监督对一个容器的终生管理到监视资源和跟踪节点健康。

总的来说,NM有以下作用

  • 管理单个节点上的资源

  • 处理来自ResourceManager的命令

  • 处理来自ApplicationMaster的命令

4、Container

Container 是 YARN 中的资源抽象,它封装了某个节点上的多维度资源,如内存、CPU、磁盘、网络等,当AM向RM申请资源时,RM为AM返回的资源便是用Container表示的。YARN会为每个任务分配一个Container,且该任务只能使用该Container中描述的资源。

总的来说,Container有以下作用

  • 对任务运行环境进行抽象,封装CPU、内存等多维度的资源以及环境变量、启动命令等任务运行相关的信息。

posted @ 2019-06-14 07:43  北漂屌丝  阅读(186)  评论(0编辑  收藏  举报