YARN--大数据的资源管理器

最初,Hadoop主要限于范例MapReduce,其中资源管理由JobTracker和TaskTacker完成。JobTracker将MapReduce任务传播到集群中的特定节点,理想情况下是具有数据的节点,或者至少位于同一机架中。TaskTracker是集群中从JobTracker接受任务(Map,Reduce和Shuffle操作)的节点。由于Hadoop已经超越了MapReudce(例如HBase,Storm等),Hadoop现在在架构上将资源管理功能与MapReduce的编程模型分离,这使Hadoop集群更通用。新的资源管理器称为MapReduce 2.0(MRv2)或YARN。现在MapReduce是在YARN容器中运行的一种应用程序,其他类型的应用程序可以一般地写在YARN上运行。

YARN采用主从模型,包括几个组件:

•全局资源管理器是在系统中所有应用程序之间仲裁资源的最终权威。

•每个应用程序的应用程序主服务器从资源管理器协商资源,并与节点管理器协作以执行和监视组件任务。

•每个节点的从节点管理器负责启动应用程序的容器,监视其资源使用情况并向资源管理器报告。

资源管理器由调度程序和应用程序管理器组成,是在集群中的各种竞争应用程序之间仲裁资源的中央机构。调度器负责根据容量,队列等的约束向各种运行的应用分配资源。应用管理器负责接受作业提交,协商用于执行应用专用应用主控的第一容器,并提供用于重新启动的服务应用程序主容器失败。

调度器使用包含诸如内存,CPU,磁盘,网络等元素的资源容器的抽象概念。最初,YARN使用基于内存的调度。每个节点配置有用于其任务的设定量的存储器和应用请求容器,具有可配置的存储器量。最近,YARN以相同的方式添加了CPU作为资源。节点配置有多个“虚拟核心”(vcore),应用程序在容器请求中给出一个vcore号码。

调度器具有可插入的策略插件,其负责在各种队列,应用等之间划分群集资源。例如,容量调度器被设计为使共享的多租户群集的吞吐量和利用率最大化。队列是容量调度程序中的主要抽象。每个队列的容量指定可用于提交到队列的应用程序的群集资源的百分比。此外,队列可以在层次结构中设置。 YARN还运行公平调度,试图分配资源给应用程序,使所有应用程序获得平等的资源份额平均使用主要资源公平。

YARN和应用程序之间的协议如下。首先,应用提交客户端与资源管理器通信以获取新的应用Id。然后通过向资源管理器提供足够的信息(例如本地文件/ jar,命令行,环境设置等)来启动应用程序主服务器来提交要运行的应用程序。然后,应用程序主服务器将向资源管理器注册自己,并请求和接收容器。在为其分配容器后,应用程序主服务器通过指定启动信息(如命令行规范,环境等)与节点管理器通信以启动其任务的容器。应用程序主服务器还处理作业容器的故障。一旦任务完成,应用程序主服务器发信号通知资源管理器。

作为YARN集群的中心机构,资源管理器也是单点故障(SPOF)。为了使其容错,可以采用主动/备用架构,因为Hadoop 2.4。可以启动多个资源管理器实例(在配置文件yarn-site.xml中列出),但只有一个实例在任何时间点处于活动状态,而其他实例处于待机模式。当活动下降或变得无响应时,另一个资源管理器由基于ZooKeeper的方法自动选择为活动。 ZooKeeper是一个复制的CP键值存储,我们将在后面详细讨论。客户端,应用程序主节点和节点管理器尝试以循环方式连接到资源管理器,直到它们命中新的活动

原文发布于微信公众号 - 鸿的学习笔记(shujuxuexizhilu)

原文发表时间:2017-02-10

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏个人分享

Spark on Yarn 架构解析

我们都知道yarn重构根本的思想,是将原有的JobTracker的两个主要功能资源管理器 和 任务调度监控 分离成单独的组件。新的架构使用全局管理所有应用程序的...

43310
来自专栏Hadoop实操

如何将CDH从企业版降级为免费版

在使用CDH企业版时,当License过期后,在CM顶部总是会有一个红色的banner条显示License已过期。我们有时会觉得它影响美观,想要考虑将CDH从企...

91850
来自专栏祝威廉

使用Spark SQL 构建流式处理程序

今天介绍利用 StreamingPro 构建流式(Spark Streaming)计算程序

11940
来自专栏LhWorld哥陪你聊算法

【Sqoop篇】----Sqoop从搭建到应用案例

今天开始讲解Sqoo的用法搭建和使用。Sqoop其实功能非常简单。主要用于在Hadoop(Hive)与传统的数据库(mysql、postgresql...)间进...

15010
来自专栏恰童鞋骚年

Hadoop学习笔记—22.Hadoop2.x环境搭建与配置

自从2015年花了2个多月时间把Hadoop1.x的学习教程学习了一遍,对Hadoop这个神奇的小象有了一个初步的了解,还对每次学习的内容进行了总结,也形成了我...

29510
来自专栏行者悟空

Hadoop之HDFS概念与体系结构

38550
来自专栏搜云库

Hadoop-2.7.4 集群快速搭建

Hadoop简介 Hadoop是一个由Apache基金会所开发的分布式系统基础架构。 用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力...

34770
来自专栏LanceToBigData

Hadoop(四)HDFS集群详解

前言   前面几篇简单介绍了什么是大数据和Hadoop,也说了怎么搭建最简单的伪分布式和全分布式的hadoop集群。接下来这篇我详细的分享一下HDFS。   H...

57090
来自专栏恰童鞋骚年

Hadoop学习笔记—13.分布式集群中节点的动态添加与下架

开篇:在本笔记系列的第一篇中,我们介绍了如何搭建伪分布与分布模式的Hadoop集群。现在,我们来了解一下在一个Hadoop分布式集群中,如何动态(不关机且正在运...

7810
来自专栏祝威廉

StreamingPro 再次支持 Structured Streaming

之前已经写过一篇文章,StreamingPro 支持Spark Structured Streaming,不过当时只是玩票性质的,因为对Spark 2.0+ 版...

10730

扫码关注云+社区

领取腾讯云代金券