YARN

YARN是Hadoop的资源管理器。

  • 理解YARN如何为Hadoop集群提供灵活的资源管理
  • 理解YARN如何拓展Hadoop使得能够支持多种框架如MapReduce、Spark、Giraph和Flink

YARN是Hadoop从1.0升级至2.0出现的,hadoop1.0只支持MapReduce任务、资源利用率低。如图,Hadoop2.0中加入YARN使得hadoop中的编程模型有了除MapReduce外的更多选择,并且多种应用程序如MapReduce、Spark可以使用同一个数据集。 
YARN_第1张图片
YARN中有四个基本组件:ResourceManager、NodeManager、ApplicationMaster、Container。ResourceManager每个集群仅有一个,负责集群资源的统一管理和调度,NodeManager每个节点都有一个,负责单节点资源管理和调度。每个应用程序有一个ApplicationMaster管理该应用程序。Container是对任务运行资源的抽象,可以理解为一台计算机。 
各组件在YARN中的位置如下: 
YARN_第2张图片
YARN的工作流程大致如下: 
步骤1 client程序向YARN中提交应用程序,ResourceManager为该应用程序分配第一个Container,并与相应的NodeManager通信,要求它在这个Container中启动应用程序的ApplicationMaster。 
步骤2 ApplicationMaster首先向ResourceManager注册,这样用户可以直接通过ResourceManager查看应用程序的运行状态,然后ApplicationMaster将为各个任务申请资源,并监控任务的运行状态,直到运行结束。 
步骤3 ApplicationMaster向ResourceManager申请和获取资源,一旦ApplicationMaster申请到资源后,便与对应的NodeManager通信,要求它启动任务。 
步骤4 NodeManager启动任务。 
步骤5 各个任务向ApplicationMaster汇报自己的状态和进度,以让ApplicationMaster随时掌握各个任务的运行状态,从而可以在任务失败时重新启动任务。 
步骤6 应用程序运行完成后,ApplicationMaster向ResourceManager注销并关闭自己。

你可能感兴趣的:(Hadoop)