YARN是一个分布式的资源管理系统。YARN是Hadoop系统的核心组件,主要功能包括负责在Hadoop集群中的资源管理,负责对任务进行调度运行以及监控。

背景信息

YARN架构图如下所示。YARN
YARN组件信息如下:
  • ResourceManager:负责集群的资源管理与调度,为运行在YARN上的各种类型任务分配资源。

    非HA集群部署在EMR的Master节点上,HA集群部署在EMR的多个Master节点上,保证了高可用性。

  • NodeMananger:负责节点的资源管理、监控和任务运行。

    部署在EMR的Core或Task节点上。

  • ApplicationMaster:负责应用程序相关事务。

    例如,ApplicationMaster负责协调来自ResourceManager的资源,并通过NodeManager进行监控和资源管理等。

  • YARN Client:负责提交任务。

    部署在EMR的Master、Core和Task节点上。

  • JobHistory:解析MapReduce任务的指标,并展示任务执行情况。
  • App Timeline Server:收集任务的指标,并展示任务执行情况。
  • WebAppProxyServer:负责任务链接跳转,降低基于Web的攻击。

优势

EMR集群中的YARN优势如下:
  • 高可用集群可以自动开启YARN HA部署。
  • 便捷的运维。

    例如,支持通过控制台的方式进行节点扩容,NodeMananger下线和滚动重启等操作。

  • 支持监控报警。

    可以对各项指标进行监控和智能报警。

  • 弹性伸缩支持优雅下线功能。

    可以在一段时间内等待用户任务执行结束后再下线,而不是直接下线NodeManager导致大量任务重新计算。