`
乡里伢崽
  • 浏览: 111942 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Hadoop YARN配置参数剖析(4)—Fair Scheduler相关参数

    博客分类:
  • yarn
 
阅读更多
首先在yarn-site.xml中,将配置参数yarn.resourcemanager.scheduler.class设置为org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler。

Fair Scheduler的配置选项包括两部分,其中一部分在yarn-site.xml中,主要用于配置调度器级别的参数,另外一部分在一个自定义配置文件(默认是fair-scheduler.xml)中,主要用于配置各个队列的资源量、权重等信息。

想要了解Fair Scheduler是什么,可阅读我的这篇文章“Hadoop公平调度器分析”。

1. 配置文件yarn-site.xml

(1) yarn.scheduler.fair.allocation.file :自定义XML配置文件所在位置,该文件主要用于描述各个队列的属性,比如资源量、权重等,具体配置格式将在后面介绍。

(2)  yarn.scheduler.fair.user-as-default-queue:当应用程序未指定队列名时,是否指定用户名作为应用程序所在的队列名。如果设置为false或者未设置,所有未知队列的应用程序将被提交到default队列中,默认值为true。

(3)  yarn.scheduler.fair.preemption:是否启用抢占机制,默认值是false。

(4)  yarn.scheduler.fair.sizebasedweight:在一个队列内部分配资源时,默认情况下,采用公平轮询的方法将资源分配各各个应用程序,而该参数则提供了另外一种资源分配方式:按照应用程序资源需求数目分配资源,即需求资源数量越多,分配的资源越多。默认情况下,该参数值为false。

(5)  yarn.scheduler.assignmultiple:是否启动批量分配功能。当一个节点出现大量资源时,可以一次分配完成,也可以多次分配完成。默认情况下,该参数值为false。

(6)  yarn.scheduler.fair.max.assign:如果开启批量分配功能,可指定一次分配的container数目。默认情况下,该参数值为-1,表示不限制。

(7)  yarn.scheduler.fair.locality.threshold.node:当应用程序请求某个节点上资源时,它可以接受的可跳过的最大资源调度机会。当按照分配策略,可将一个节点上的资源分配给某个应用程序时,如果该节点不是应用程序期望的节点,可选择跳过该分配机会暂时将资源分配给其他应用程序,直到出现满足该应用程序需的节点资源出现。通常而言,一次心跳代表一次调度机会,而该参数则表示跳过调度机会占节点总数的比例,默认情况下,该值为-1.0,表示不跳过任何调度机会。

(8)  yarn.scheduler.fair.locality.threshold.rack:当应用程序请求某个机架上资源时,它可以接受的可跳过的最大资源调度机会。

(9)  yarn.scheduler.increment-allocation-mb:内存规整化单位,默认是1024,这意味着,如果一个Container请求资源是1.5GB,则将被调度器规整化为ceiling(1.5 GB / 1GB) * 1G=2GB。

(10)  yarn.scheduler.increment-allocation-vcores:虚拟CPU规整化单位,默认是1,含义与内存规整化单位类似。

2. 自定义配置文件

Fair Scheduler允许用户将队列信息专门放到一个配置文件(默认是fair-scheduler.xml),对于每个队列,管理员可配置以下几个选项:

(1)  minResources :最少资源保证量,设置格式为“X mb, Y vcores”,当一个队列的最少资源保证量未满足时,它将优先于其他同级队列获得资源,对于不同的调度策略(后面会详细介绍),最少资源保证量的含义不同,对于fair策略,则只考虑内存资源,即如果一个队列使用的内存资源超过了它的最少资源量,则认为它已得到了满足;对于drf策略,则考虑主资源使用的资源量,即如果一个队列的主资源量超过它的最少资源量,则认为它已得到了满足。

(2)  maxResources:最多可以使用的资源量,fair scheduler会保证每个队列使用的资源量不会超过该队列的最多可使用资源量。

(3)  maxRunningApps:最多同时运行的应用程序数目。通过限制该数目,可防止超量Map Task同时运行时产生的中间输出结果撑爆磁盘。

(4)  minSharePreemptionTimeout:最小共享量抢占时间。如果一个资源池在该时间内使用的资源量一直低于最小资源量,则开始抢占资源。

(5)  schedulingMode/schedulingPolicy:队列采用的调度模式,可以是fifo、fair或者drf。

(6)  aclSubmitApps:可向队列中提交应用程序的Linux用户或用户组列表,默认情况下为“*”,表示任何用户均可以向该队列提交应用程序。需要注意的是,该属性具有继承性,即子队列的列表会继承父队列的列表。配置该属性时,用户之间或用户组之间用“,”分割,用户和用户组之间用空格分割,比如“user1, user2 group1,group2”。

(7)  aclAdministerApps:该队列的管理员列表。一个队列的管理员可管理该队列中的资源和应用程序,比如可杀死任意应用程序。

管理员也可为单个用户添加maxRunningJobs属性限制其最多同时运行的应用程序数目。此外,管理员也可通过以下参数设置以上属性的默认值:

(1)  userMaxJobsDefault:用户的maxRunningJobs属性的默认值。

(2) defaultMinSharePreemptionTimeout :队列的minSharePreemptionTimeout属性的默认值。

(3)  defaultPoolSchedulingMode:队列的schedulingMode属性的默认值。

(4)  fairSharePreemptionTimeout:公平共享量抢占时间。如果一个资源池在该时间内使用资源量一直低于公平共享量的一半,则开始抢占资源。

【实 例】假设要为一个Hadoop集群设置三个队列queueA、queueB和queueC,其中,queueB和queueC为queueA的子队列,且规定普通用户最多可同时运行40个应用程序,但用户userA最多可同时运行400个应用程序,那么可在自定义配置文件中进行如下设置:

    进行如下设置:
<allocations>
    <queue name=”queueA”>
      <minResources>100 mb, 100 vcores</minResources>
      <maxResources>150 mb, 150 vcores</maxResources>
      <maxRunningApps>200</maxRunningApps>
      <minSharePreemptionTimeout>300</minSharePreemptionTimeout>
      <weight>1.0</weight>
      <queue name=”queueB”>
      <minResources>30 mb, 30 vcores</minResources>
      <maxResources>50 mb, 50 vcores</maxResources>
    </queue>
    <queue name=”queueC”>
      <minResources>50 mb, 50 vcores</minResources>
      <maxResources>50 mb, 50 vcores</maxResources>
    </queue>
    </queue>
  <user name=”userA”>
    <maxRunningApps>400</maxRunningApps>
  </user>
    <userMaxAppsDefault>40</userMaxAppsDefault>
    <fairSharePreemptionTimeout>6000</fairSharePreemptionTimeout>
</allocations>

分享到:
评论

相关推荐

    Hadoop的yarn详解

    YARN支持多种调度器,包括CapacityScheduler和FairScheduler。CapacityScheduler是为大数据处理设计的,它允许资源分配基于容量的队列,而FairScheduler则提供了一种基于公平份额的资源分配策略,确保资源可以根据...

    Hadoop+YARN资源分配+与调度的研究

    Hadoop的资源管理系统YARN虽然提供了三种内置的资源调度器(FIFO Scheduler、Capacity Scheduler和Fair Scheduler),但在实际应用过程中,随着业务需求的增长和应用场景的多样化,这些内置调度器往往无法完全满足...

    Hadoop技术内幕深入解析YARN架构设计与实现原理PDF

    6. **公平调度器和容量调度器**:YARN支持多种调度策略,最常用的是公平调度器(Fair Scheduler)和容量调度器(Capacity Scheduler)。公平调度器确保所有应用程序获得相等的资源份额,而容量调度器则保证特定队列...

    YARN框架代码详细分析

    4. NM的资源下载:NodeManager需要从外部获取应用程序运行所需的相关资源,例如JAR文件、配置文件等。 YARN设计了一个新的框架下的软件设计模式,将任务调度和资源管理解耦,使得YARN具有更好的灵活性和扩展性。...

    YARN学习书籍及注解

    通过深入学习"YARN学习书籍及注解",读者可以全面了解YARN的工作原理,掌握如何配置和管理YARN集群,以及如何针对特定应用场景进行优化,这对于从事大数据处理和分析的工程师来说是非常宝贵的技能。

    hadoop2.2.0

    4. 资源调度:YARN通过Capacity Scheduler和Fair Scheduler提供资源调度策略。Capacity Scheduler适用于多用户环境,保证每个队列的最小资源分配;Fair Scheduler则依据应用程序的需求公平分配资源,适合共享集群...

    hadoop经典系列(十一)性能分析实验初步

    YARN负责资源调度,Fair Scheduler和Capacity Scheduler是常用的调度策略。了解它们的工作原理,并根据业务需求调整配置,可以提升整体效率。 7. **硬件配置**: 硬件选择对Hadoop性能有很大影响,包括CPU、内存...

    hadoop2.6.0.rar

    配置Hadoop配置文件:修改`etc/hadoop/core-site.xml`、`etc/hadoop/hdfs-site.xml`、`etc/hadoop/mapred-site.xml`和`etc/hadoop/yarn-site.xml`,指定集群的相关参数,如namenode和datanode地址,以及YARN的配置。...

    Hadoop技术答疑汇总

    - **知识点概述**:Hadoop的调度器负责任务的分配和执行,包括Capacity Scheduler、Fair Scheduler等多种类型。其中,Fair Scheduler旨在实现资源公平分配的同时考虑到了一定程度的负载均衡。 - **调度器机制**: -...

    Hadoop3.2.2.zip

    此外,Hadoop 3.2.2还支持新的资源调度器,如Fair Scheduler和Capacity Scheduler,可以根据实际需求选择合适的调度策略。 在Hadoop环境中,你可以使用HDFS命令行工具进行文件操作,如 `hadoop fs -put` 用于上传...

    Yarn框架代码详细分析

    YARN中的调度器(如FairScheduler)会根据资源的使用情况和预设策略进行资源的分配和调度,它包括了资源预分配、抢占资源等策略,以此来提升资源利用率和响应速度。MRAppMaster则负责分配具体任务到各个容器中去执行...

    Hadoop权威指南中文版(第二版)+Hadoop in Action

    6. **YARN详解**:资源调度器(CapacityScheduler和FairScheduler)、ResourceManager、NodeManager和ApplicationMaster的角色和交互。 7. **Hadoop生态扩展**:Zookeeper(分布式协调服务)、Oozie(工作流调度...

    Yarn框架代码详细分析V0.3.pdf

    - **FairScheduler代码分析:** - 实现了公平调度算法,确保资源在多个应用程序之间公平分配。 - **FairScheduler资源预分配:** - 在资源分配前先进行预分配,确保每个应用程序都有足够的资源。 - **Fair...

    基于节点性能的Hadoop作业调度算法改进.pdf

    此外,关键词“大数据”、“Hadoop”、“YARN”、“负载均衡”和“Fair Scheduler算法”揭示了研究的核心内容。大数据环境下,如何有效利用Hadoop平台的资源,特别是YARN作为资源调度器的角色,对于提升整体处理效率...

    Yarn常见问题维护手册V1.01

    - `[YARN-10001]` 在 Windows 环境下提交 MR 任务失败:这通常与环境变量配置不正确、Hadoop 客户端与服务器版本不匹配或权限问题有关。确保所有依赖项已正确安装,配置文件如 `hadoop-env.cmd` 和 `core-site.xml`...

    4.Yarn资源调度器.pdf

    YARN支持两种主要的多用户资源调度器——Capacity Scheduler和Fair Scheduler。 1. **Capacity Scheduler** 是一种基于队列的调度器,适合大型多租户环境。它将资源按照预先定义的容量分配给不同的队列,确保每个...

    yarn调度流程.docx

    YARN(Yet Another Resource Negotiator)是 Hadoop 生态系统中的资源管理层,负责管理和调度集群中的资源。YARN 调度流程是大数据处理中的一個关键步骤,下面我们将详细介绍 YARN 调度流程的整个过程。 YARN 架构 ...

    HADOOP权威指南 第3版 PDF电子书下载 带目录书签 完整版

    4. **Hadoop安装与配置**:包括单机模式、伪分布式模式和完全分布式模式的安装,以及配置文件的修改,如hadoop-env.sh、core-site.xml、hdfs-site.xml、mapred-site.xml和yarn-site.xml等。 5. **HDFS操作**:包括...

    Hadoop学习及实战资料.zip

    其次,**"Hadoop公平调度器指南.pdf"**,这可能是Hadoop Fair Scheduler的详细指南。Hadoop Fair Scheduler是一个可插拔的资源调度器,它允许多个用户和应用程序公平地共享集群资源。通过阅读这份指南,你可以了解到...

Global site tag (gtag.js) - Google Analytics