Hadoop-YARN

Yarn是Yet Another Resource Negotiator的缩写。根据Yarn中文官网的显示,这是一个快速、可靠、安全的依赖管理工具。在Hadoop 1.0及更早版本中,我们只能运行MapReduce,这导致图形处理、迭代计算等任务无法有效执行。在Hadoop 2.0及后续版本中,MapReduce的调度部分被外部化并重新编写为名为Yarn的新组件,Yarn最大的特点是执行调度与Hadoop上运行的任务类型无关。

YARN架构图

Yarn主要由ResourceManager、NodeManager、ApplicationMaster和Container等组件构成。Yarn框架执行主要功能,即在集群中调度资源(上文提到的容器)。集群中的应用程序与YARN框架通信,要求分配特定于应用程序的容器资源,Yarn框架会评估这些请求并尝试实现。Yarn调度的一个重要部分是监视当前正在执行的容器,一旦容器完成,调度程序就可以释放容量来安排其他工作。此外,每个容器都有一个协议,指定允许使用的系统资源,并在容器超出边界的情况下终止容器,以避免恶意影响其他应用程序。

Yarn框架有意设计的尽可能简单,它不知道或不关心正在运行的应用程序类型,不保留有关集群上执行内容的任何历史信息,这些设计是Yarn可以扩展到MapReduce之外的主要原因。

  • ResourceManager——Hadoop集群具有至少一个ResourceManager(RM)。ResourceManager是Yarn的主进程,其唯一功能是仲裁Hadoop集群上的资源,响应客户端创建容器请求,调度程序根据特定的多租户规则确定何人可以在何时何地创建容器,正如Hadoop 1.0版本,ResourceManager调度程序是可选择的,这意味着你可以选择最适合的调度程序,而实际创建的容器被委托给NodeManager。

  • NodeManager——NodeManager是在集群每个节点上运行的从属进程。它的主要工作是创建、监视和杀死容器。它为来自ResourceManager和ApplicationMaster的请求提供服务以创建容器,并向ResourceManager报告容器的状态。ResourceManager使用这些状态消息中包含的数据对请求做出调度决策。在非HA模式下,只存在ResourceManager单个实例。

Yarn应用程序涉及三大组件 - 客户端,ApplicationMaster(AM)和容器,如图2.3所示。启动新的Yarn应用程序需从Yarn客户端开始,该客户端与ResourceManager通信以创建新的Yarn ApplicationMaster实例,此过程Yarn客户端会让ResourceManager通知ApplicationMaster物理资源要求。

ApplicationMaster是Yarn应用程序主进程,不执行任何特定于应用程序的工作,因为这些函数被委托给容器。但是,它负责管理特定于应用程序的容器:询问ResourceManager其创建容器的意图,然后与NodeManager联系以实际执行容器创建。作为此过程的一部分,ApplicationMaster必须根据主机启动容器,并确定容器的内存和CPU要求以指定容器所需资源。

ResourceManager根据资源要求安排工作,它使主机能够运行混合容器,如图2.4所示。ApplicationMaster负责应用程序的特定容错,在容器失败时从ResourceManager接收状态消息,并基于具体事件采取操作(通过要求ResourceManager创建新容器解决)或忽略这些事件。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值