`
yo8237233
  • 浏览: 62772 次
  • 来自: 深圳
社区版块
存档分类
最新评论

YARN中自己总结的几个关键点

阅读更多
以前在Hadoop 1.0中JobTracker主要完成两项功能:资源的管理和作业控制。在集群规模过大的场景下,JobTracker
存在以下不足:
1)JobTracker 单点故障。
2)JobTracker 承受的访问压力大,影响系统的扩展性。
3)不支持MapReduce之外的计算框架,比如Storm、Spa rk、Flink

因此在YARN的设计中,资源的管理和作业控制是分离开的。取代JobTracker的是ResourceManager、ApplicationMaster两个部分。

  ● Resource Manager是一个全局的资源管理器 ,它做的事情是调度、启动每一个Job所属的ApplicationMaster、另外监控ApplicationMaster的存在情况。注:RM只负责监控AM,在AM运行失败时候启动它,RM并不负责AM内部任务的容错,这由AM来完成。(是通过RM中的applicationManager来完成的)
  ● ApplicationMaster是每一个Job(不是每一种)都有的一个部分,ApplicationMaster可以运行在ResourceManager以外的机器上,每个应用程序对应一个ApplicationMaster。。
  ● NodeManager是ResourceManager的在每个节点的代理,负责 Container 状态的维护,并向RM保持心跳。
  ● 另外,YARN使用Container对资源进行抽象,它封装了某个节点上一定量的资源(现在YARN仅支持CPU和内存两种资源)。当AM向RM申请资源时,RM为AM返回的资源使用Container表示。YARN会为每个任务分配一个或多个Container,且该任务只能使用该Container中描述的资源。(注:AM也是运行在一个Container中),)目前可以支持多种计算框架运行在YARN上面,比如MapReduce、Storm、Spark、Flink。

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

要使用一个 YARN 集群,首先需要来自包含一个应用程序的客户的请求。

YARN设计的优点
  ● 将资源管理和作业控制分离,减小JobTracker压力
      ○ YARN的设计大大减小了 JobTracker(也就是现在的 ResourceManager)的资源消耗,并且让监测每一个 Job 子任务 (tasks) 状态的程序分布式化了,更安全、更优美。
      ○ 老的框架中,JobTracker一个很大的负担就是监控job下的tasks的运行状况,现在,这个部分就扔给ApplicationMaster做了而ResourceManager中有一个模块叫做ApplicationsManager(ASM),它负责监测ApplicationMaster的运行状况。
  ● 能够支持不同的计算框架

工作原理



mapreduce on yarn



ARN的不足与展望
YARN是一个双层调度器(Two-level scheduler),解决了中央调度器(Monolithic scheduler)的不足(中央调度器典型的代表就是JobTracker),双层调度架构看上去为调度增加了灵活性和并发性,但实际上它保守的资源可见性和上锁算法(使用悲观并发)也限制了灵活性和并发性。第一,保守的资源可见性导致各框架无法感知整个集群的资源使用情况,有空闲资源无法通知排队的进程,容易造成资源的浪费;第二,上锁算法降低了并发性,调度器会将资源分配给一个架构,只有该架构返回资源后,调度器才回将该部分资源分配给其他架构,在第一个分配过程中,资源相当于被锁住,从而降低了并发性。总结来说,YARN同其他双层架构的调度器(例如:Mesos)都有的不足为:
  ● 各个应用无法感知集群整体资源的使用情况,只能等待上层调度推送信息。
  ● 资源分配采用轮询、ResourceOffer机制(mesos),在分配过程中使用悲观锁,并发粒度小。
  ● 缺乏一种有效的竞争或优先抢占的机制。
为了改善双层调度系统的的不足,尤其是各个应用无法感知集群整体资源的使用情况和悲观加锁控制导致的并发性不高这两个不足,共享状态调度器(Shared State Scheduler)被越来越多的人所重视,其中最具代表性的就是Google的Omega。共享状态调度器在双层调度器的基础上做了改进:
  ● 简化了双层调度器中的全局资源管理器,改为由一个Cell State来记录集群内的资源使用情况,这些使用情况都是共享的数据,以此来达到与全局资源管理器相同的效果。
  ● 所有任务访问共享数据时,采用乐观并发控制方法。
共享调度器也存在不足。例如,当某一资源被不同任务同时访问时容易产生冲突,访问的任务越多时,冲突次数就会越多,冲突次数越高调度器的性能下降越快,这将影响调度器的工作效率和工作性能。

  • 大小: 288.5 KB
  • 大小: 143.6 KB
分享到:
评论

相关推荐

    yarn-1.22.4.zip

    首先,Yarn的**高速度**来源于它的几个核心策略。它引入了一种名为“一次性全局安装”的概念,这意味着每个依赖包只会被下载一次,并缓存在本地磁盘上。这样,在后续项目中如果需要同样的包,Yarn就能直接从缓存中...

    yarn配置文件.7z

    在实际开发中,你可能需要关注以下几点: - 当添加、删除或更新依赖时,务必同时更新`package.json`并执行`yarn add`或`yarn remove`命令,以便同步`yarn.lock`。 - 对于`.yarnrc`,应谨慎修改,特别是当项目在多个...

    YARN应用场景、原理与资源调度

    YARN(Yet Another Resource Negotiator,另一种资源协调者)是Hadoop 2.0引入的关键组件,用来解决Hadoop 1.0中MapReduce面临的多个问题,比如资源管理不足、单点故障风险高、支持多计算模型等。 Hadoop YARN的...

    HadoopHA集群部署、YARNHA测试Job教学课件.pptx

    在配置过程中,需要注意以下几个关键点: 1. **设置 ZooKeeper**:ZooKeeper 用于协调集群中的节点状态,确保在 NameNode 或 ResourceManager 之间进行安全的故障切换。 2. **配置共享存储**:NameNode 的元数据...

    基于Yarn的淘宝海量数据服务平台

    这篇文章将主要围绕以下几个核心知识点展开: 1. **Yarn的架构与角色**: - **ResourceManager (RM)**:全局资源调度器,负责整个集群的资源分配和监控。 - **NodeManager (NM)**:每个节点上的代理,负责本节点...

    23、hadoop集群中yarn运行mapreduce的内存、CPU分配调度计算与优化

    优化YARN和MapReduce的内存分配时,需要考虑以下几点: - 确保配置的内存大小与实际硬件匹配,避免资源浪费。 - 根据工作负载动态调整资源配置,例如,处理大数据量的任务可能需要更多的内存和CPU。 - 监控集群性能...

    基于Spark_on_Yarn的淘宝数据挖掘平台.pdf

    淘宝在采用Spark_on_Yarn的过程中进行了大量的优化和改进,主要包括以下几个方面: 1. **性能优化**: - 修复了多个核心问题,如`Remove acOve job from idToAcOveJob when job finished or aborted`、`Jobs are ...

    Yarn日记.docx

    Yarn的特点体现在以下几个方面: 1. **支持多计算框架**:Yarn的出现使得不同的计算框架可以在同一个平台上运行,无需关心底层资源管理的细节,提高了系统的灵活性。 2. **资源利用率高**:通过高效的资源调度算法,...

    hadoop、habse、yarn、MapReduce调优等总结的集合调优.docx

    首先,我们来看看Hadoop调优的关键点。 在Hadoop调优中,主要涉及到的核心配置文件包括`core-site.xml`、`hdfs-site.xml`和`mapred-site.xml`。`core-site.xml`用于设置Hadoop的一些通用参数,如命名空间的默认值、...

    梁宇明-Voidbox – Docker on YARN

    文档还提到了数据处理中的几个关键步骤:数据收集(Data Collecting)、数据处理(Data Processing)、数据存储(Data Storing)、数据服务(Data Serving)。这些步骤共同构成了一个数据平台的基础设施,支持业务...

    【讲义-第10期Spark公益大讲堂】Spark on Yarn-.pdf

    根据提供的文件信息,我们可以归纳出以下几个关键的知识点: ### 一、Spark on Yarn 的基本概念 **Spark on Yarn** 是指Apache Spark集群管理器与Apache Hadoop YARN资源管理器之间的集成模式。这种模式下,YARN...

    Hadoop技术-YARN简介.pptx

    在YARN中,主要有以下几个关键组件: 1. **ResourceManager (RM)**:全局资源管理器,负责整个集群的资源分配和监控,处理来自ApplicationMaster的资源请求。 2. **NodeManager (NM)**:运行在每个节点上的服务,...

    airflow-yarn-executor-plugin:利用YARN执行任务的实验气流执行器-进行中

    这通常涉及到以下几个关键点: 1. **任务容器化**:Airflow任务需被包装到Docker容器中,以确保环境一致性并允许在YARN节点上无缝部署。 2. **YARN客户端集成**:插件需要与YARN的ResourceManager进行通信,提交...

    藏经阁-深度学习+大数据-TensorFlow on Yarn.pdf

    在 TensorFlow on Yarn 的设计中,作者提出了几个关键技术点,如 GPU 亲和性调度、Web 界面查看作业状态、HistoryServer 支持查看结束作业的日志和状态信息等。同时,作者还提供了扩展目标,如支持 GPU 亲和性调度、...

    03-Yarn安装部署及资源队列使用.pdf

    YARN的基本架构包含以下几个主要组件: 1. ResourceManager(RM):负责整个系统的资源管理和调度。它处理客户端请求,启动并监控ApplicationMaster,监控NodeManager,并负责资源分配与调度。 2. NodeManager(NM)...

    大数据Spark技术分享 使用YARN的基于动态类的Spark工作负载调度和资源 共12页.pdf

    综上所述,这份文件可能包含了以下几个关键知识点: 1. Spark技术概述:作为大数据处理的重要工具,Spark提供快速、通用的集群计算系统,强调了大数据处理中的实时计算。 2. YARN的作用:YARN作为Hadoop的资源管理...

    利用yarn实现一个webpack+react种子

    在这个配置文件中,我们设置了以下几个关键参数: - `entry`: 定义了项目的入口文件,这里的配置意味着有三个入口点。 - `output`: 指定输出文件的位置和名称,`publicPath`用于设置资源路径。 - `module`: 配置...

Global site tag (gtag.js) - Google Analytics