YARN是什么

Apache Hadoop YARN (另一种资源协调者)是一种新的 Hadoop 资源管理器,它是一个通用资源管理系统,可为上层应用提供统一的资源管理和调度,它的引入为集群在利用率、资源统一管理和数据共享等方面带来了巨大好处。

Apache Hadoop YARN (Yet Another Resource Negotiator,另一种资源协调者)是一种新的 Hadoop 资源管理器,它是一个通用资源管理系统,可为上层应用提供统一的资源管理和调度,它的引入为集群在利用率、资源统一管理和数据共享等方面带来了巨大好处。

YARN是什么

术语解释

YARN 的基本思想是将 JobTracker 的两个主要功能(资源管理和作业调度/监控)分离,主要方法是创建一个全局的 ResourceManager(RM)和若干个针对应用程序的 ApplicationMaster(AM)。这里的应用程序是指传统的 MapReduce 作业或作业的 DAG(有向无环图)。

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

ApplicationMaster 管理一个在 YARN 内运行的应用程序的每个实例。ApplicationMaster 负责协调来自 ResourceManager 的资源,并通过 NodeManager 监视容器的执行和资源使用(CPU、内存等的资源分配)。请注意,尽管目前的资源更加传统(CPU 核心、内存),但未来会带来基于手头任务的新资源类型(比如图形处理单元或专用处理设备)。从 YARN 角度讲,ApplicationMaster 是用户代码,因此存在潜在的安全问题。YARN 假设 ApplicationMaster 存在错误或者甚至是恶意的,因此将它们当作无特权的代码对待。

NodeManager 管理一个 YARN 集群中的每个节点。NodeManager 提供针对集群中每个节点的服务,从监督对一个容器的终生管理到监视资源和跟踪节点健康。MRv1 通过插槽管理 Map 和 Reduce 任务的执行,而 NodeManager 管理抽象容器,这些容器代表着可供一个特定应用程序使用的针对每个节点的资源。YARN 继续使用 HDFS 层。它的主要 NameNode 用于元数据服务,而 DataNode 用于分散在一个集群中的复制存储服务。

要使用一个 YARN 集群,首先需要来自包含一个应用程序的客户的请求。ResourceManager 协商一个容器的必要资源,启动一个 ApplicationMaster 来表示已提交的应用程序。通过使用一个资源请求协议,ApplicationMaster 协商每个节点上供应用程序使用的资源容器。执行应用程序时,ApplicationMaster 监视容器直到完成。当应用程序完成时,ApplicationMaster 从 ResourceManager 注销其容器,执行周期就完成了。

基本缺陷

MapReduce 的第一个版本既有优点也有缺点。MRv1 是目前使用的标准的大数据处理系统。但是,这种架构存在不足,主要表现在大型集群上。当集群包含的节点超过 4,000 个时(其中每个节点可能是多核的),就会表现出一定的不可预测性。其中一个最大的问题是级联故障,由于要尝试复制数据和重载活动的节点,所以一个故障会通过网络泛洪形式导致整个集群严重恶化。

但 MRv1 的最大问题是多租户。随着集群规模的增加,一种可取的方式是为这些集群采用各种不同的模型。MRv1 的节点专用于 Hadoop,所以可以改变它们的用途以用于其他应用程序和工作负载。当大数据和 Hadoop 成为云部署中一个更重要的使用模型时,这种能力也会增强,因为它允许在服务器上对 Hadoop 进行物理化,而无需虚拟化且不会增加管理、计算和输入/输出开销。

主要优点

大大减小了 JobTracker(也就是现在的 ResourceManager)的资源消耗,并且让监测每一个 Job 子任务 (tasks) 状态的程序分布式化了,更安全、更优美。

在新的 Yarn 中,ApplicationMaster 是一个可变更的部分,用户可以对不同的编程模型写自己的 AppMst,让更多类型的编程模型能够跑在 Hadoop 集群中,可以参考 hadoop Yarn 官方配置模板中的 mapred-site.xml 配置。

对于资源的表示以内存为单位 ( 在目前版本的 Yarn 中,没有考虑 cpu 的占用 ),比之前以剩余 slot 数目更合理。

老的框架中,JobTracker 一个很大的负担就是监控 job 下的 tasks 的运行状况,现在,这个部分就扔给 ApplicationMaster 做了,而 ResourceManager 中有一个模块叫做 ApplicationsMasters( 注意不是 ApplicationMaster),它是监测 ApplicationMaster 的运行状况,如果出问题,会将其在其他机器上重启。

Container 是 Yarn 为了将来作资源隔离而提出的一个框架。这一点应该借鉴了 Mesos 的工作,目前是一个框架,仅仅提供 java 虚拟机内存的隔离,hadoop 团队的设计思路应该后续能支持更多的资源调度和控制 , 既然资源表示成内存量,那就没有了之前的 map slot/reduce slot 分开造成集群资源闲置的尴尬情况。

核心思想

将 JobTracker 和 TaskTracker 进行分离,它由下面几大构成组件:

a. 一个全局的资源管理器 ResourceManager

b.ResourceManager 的每个节点代理 NodeManager

c. 表示每个应用的 ApplicationMaster

d. 每一个 ApplicationMaster 拥有多个 Container 在 NodeManager 上运行

主要架构

ResourceManager(RM):RM 是一个全局的资源管理器,负责整个系统的资源管理和分配。它主要由两个组件构成:调度器(Scheduler)和应用程序管理器(Applications Manager,ASM)。

调度器 调度器根据容量、队列等限制条件(如每个队列分配一定的资源,最多执行一定数量的作业等),将系统中的资源分配给各个正在运行的应用程序。需要注意的是,该调度器是一个“纯调度器”,它不再从事任何与具体应用程序相关的工作,比如不负责监控或者跟踪应用的执行状态等,也不负责重新启动因应用执行失败或者硬件故障而产生的失败任务,这些均交由应用程序相关的 ApplicationMaster 完成。调度器仅根据各个应用程序的资源需求进行资源分配,而资源分配单位用一个抽象概念“资源容器”(Resource Container,简称 Container)表示,Container 是一个动态资源分配单位,它将内存、CPU、磁盘、网络等资源封装在一起,从而限定每个任务使用的资源量。此外,该调度器是一个可插拔的组件,用户可根据自己的需要设计新的调度器,YARN 提供了多种直接可用的调度器,比如 Fair Scheduler 和 Capacity Scheduler 等。

应用程序管理器负责管理整个系统中所有应用程序,包括应用程序提交、与调度器协商资源以启动 ApplicationMaster、监控 ApplicationMaster 运行状态并在失败时重新启动它等。

ApplicationMaster(AM):用户提交的每个应用程序均包含一个 AM,主要功能包括:

与 RM 调度器协商以获取资源(用 Container 表示);

将得到的任务进一步分配给内部的任务(资源的二次分配);

与 NM 通信以启动/停止任务;

监控所有任务运行状态,并在任务运行失败时重新为任务申请资源以重启任务。

当前 YARN 自带了两个 AM 实现,一个是用于演示 AM 编写方法的实例程序 distributedshell,它可以申请一定数目的 Container 以并行运行一个 Shell 命令或者 Shell 脚本;另一个是运行 MapReduce 应用程序的 AM—MRAppMaster。

注:RM 只负责监控 AM,在 AM 运行失败时候启动它,RM 并不负责 AM 内部任务的容错,这由 AM 来完成。

NodeManager(NM):NM 是每个节点上的资源和任务管理器,一方面,它会定时地向 RM 汇报本节点上的资源使用情况和各个 Container 的运行状态;另一方面,它接收并处理来自 AM 的 Container 启动/停止等各种请求。

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

注:1. Container 不同于 MRv1 中的 slot,它是一个动态资源划分单位,是根据应用程序的需求动态生成的。

2. 现在 YARN 仅支持 CPU 和内存两种资源,且使用了轻量级资源隔离机制 Cgroups 进行资源隔离。

YARN 的资源管理和执行框架都是按主/从范例实现的——Slave —节点管理器(NM)运行、监控每个节点,并向集群的 Master—资源管理器(RM)报告资源的可用性状态,资源管理器最终为系统里所有应用分配资源。

特定应用的执行由 ApplicationMaster 控制,ApplicationMaster 负责将一个应用分割成多个任务,并和资源管理器协调执行所需的资源,资源一旦分配好,ApplicationMaster 就和节点管理器一起安排、执行、监控独立的应用任务。

需要说明的是, YARN 不同服务组件的通信方式采用了事件驱动的异步并发机制,这样可以简化系统的设计。

(0)
时间不会说谎  的头像时间不会说谎  

相关推荐

  • 邮政卡状态异常多久才解除

    银行卡的密码输错也会冻结,银行卡密码输错 3 次以上被锁的通常 48 小时后会自动解除。如果是转账原因被冻结,用户需要到邮政银行营业网点办理解冻手续,通常三个工作日就会解冻。 信用…

  • 服务器客户机是什么

    服务器-客户机,即Client-Server(C/S)结构。C/S结构通常采取两层结构。服务器负责数据的管理,客户机负责完成与用户的交互任务。 服务器-客户机,即 Client-S…

  • 小新pro会出14吗,最新消息揭晓

    近年来,联想的小新系列笔记本电脑备受消费者的青睐。其中,小新Pro系列更是备受关注,因其高颜值、高性能和合理的价格而备受好评。不过,随着科技的不断发展,消费者们也不断期待着更加先进的产品。因此,有不少人开始关注小新Pro系列的下一代产品——

    2023年11月18日
  • arun充电器好不好,使用体验和评测

    本文目录一览外观设计充电速度安全性使用体验总结作为现代人,充电器已经成为我们生活中不可或缺的物品之一。而arun充电器作为市面上的一款新品牌,究竟好不好呢?今天我将为大家分享我的使用体验和评测。外观设计首先,我们来看看arun充

    2023年11月8日
  • 魅族魅蓝note6怎么样,值得购买吗

    作为一款中档手机,魅族魅蓝note6一直备受关注。那么,魅族魅蓝note6怎么样?它值得购买吗?今天,我们将对魅族魅蓝note6进行详细的评测,带你了解这款手机的具体情况。外观设计:简约大气魅族魅蓝note6采用了一块5.5英寸的屏幕,

    2023年11月9日
  • 驰为平板电脑更换电池教程,如何轻松DIY更换电池

    作为一名平板电脑的用户,你是否遇到过这样的问题:电池容量不足,使用时间变得短暂,需要频繁充电?如果你的答案是肯定的,那么你需要考虑更换电池。本文将为大家介绍如何轻松DIY更换驰为平板电脑的电池,让你的平板电脑重新焕发活力。准备工作首先,

    2024年2月11日
  • 恩科耳机值得买吗,详细评测及用户反馈

    本文目录一览外观音质舒适度价格用户反馈总结恩科耳机作为一款国产耳机品牌,一经推出就备受关注。那么,恩科耳机值得购买吗?本文将从外观、音质、舒适度、价格等多个方面进行评测,同时还会分享一些用户的真实反馈,希望能够为大家购买恩科耳机提

    2023年11月7日
  • 一加7系列哪个性价比高,详细对比评测

    在智能手机市场中,一加品牌一直以来都备受关注。近年来,一加推出了多款7系列手机,包括一加7、一加7Pro、一加7T和一加7TPro。这些手机在外观、性能、摄像头和价格等方面都有所不同,那么一加7系列哪个性价比高呢?本文将对这些手机进行详

    2024年1月16日
  • CAD图形文件无效怎么办win10,如何快速修复文件错误

    CAD软件是一款广泛应用于机械制图、工业设计、建筑设计等领域的软件,而CAD图形文件无效是CAD用户经常遇到的问题之一。当CAD图形文件无效时,我们该如何快速修复文件错误呢?本文将为大家介绍几种常见的解决方法。一、检查CAD图形文件的路径

    2023年10月4日
  • 黑麦和紫麦一样吗,它们有什么不同

    作为两种常见的麦类,黑麦和紫麦在我们的日常生活中经常出现。它们看起来很像,但是它们到底有什么不同呢?在本文中,我们将深入探讨这两种麦类的区别,以及它们在我们的饮食中的作用。一、黑麦和紫麦的外观和特点黑麦和紫麦是两种不同的麦类,它们的外观

    2023年10月12日
  • 三星npr467笔记本参数,详细介绍与评测

    作为一款高性能笔记本电脑,三星npr467笔记本在市场上备受关注。这款笔记本电脑的参数有哪些值得我们关注的呢?在本文中,我们将详细介绍三星npr467笔记本的参数,并对其进行评测,帮助您更好地了解这款电脑。一、外观设计三星npr467笔

    2023年11月13日
  • vivo S17 Pro怎么更新OriginOS 4?

    vivoS17Pro发布于去年,性价比还是十分高的,所以销量和口碑都是不错的,十分适合喜欢拍人像的小伙伴们,让用户能够畅享快速而流畅的手机使用体验。但是最近蓝厂的新系统发布了,很多用户们不清楚vivoS17Pro应该怎么更新Orig

    2024年2月21日
  • 网络文件系统是什么

    网络文件系统(NFS)是文件系统之上的一个网络抽象,来允许远程客户端以与本地文件系统类似的方式,来通过网络进行访问。允许在多个用户之间共享公共文件系统,并提供数据集中的优势,来最小…

  • 尼康恢复出厂设置在哪,详细步骤教程

    如果你是一位尼康相机的用户,那么你可能会遇到一些问题,例如相机出现故障或者你需要清除相机中的所有设置。在这些情况下,你需要将相机恢复到出厂设置。那么,尼康相机如何恢复出厂设置呢?本文将为你提供详细的步骤教程。一、备份相机中的数据在进行尼

    2024年2月4日
  • 华为Nova12怎么设置直接扫码支付?

    现代社会中人们已经很少会用到现金了,出门在外只要带个手机就可以了,使用手机就可以支付购买东西,很多用户们不知道华为Nova12怎么设置直接扫码支付,下面就让我们来一起看看吧!华为Nova12怎么设置直接扫码支付?要设置华为Nova12直接

    2024年1月27日

发表回复

登录后才能评论