Apache Yarn 公平调度程序一次只允许一个应用程序



我们有一个Hadoop集群,配置了Cloudera CDH 5.4.2发行版和Yarn fair调度器,用于调度和管理资源。我们有 18 个工作器节点,总计 963GB 主内存和 288 个 vcore。

现在的问题是,无论应用程序的资源需求有多小,我一次只能运行一个应用程序。例如,下面是动态资源池状态:

地位YARN 使用 288 个 vcore 和 942 GiB 内存。资源池使用情况

此表和右侧的图表仅包含来自 YARN 的指标。资源池名称 已分配的内存 已分配的 VCores 已分配的容器 挂起的容器
根 0 B 0 0 0
user1 0 B 0 0 1
默认值 0 B 0 0 0
user2 22 GiB 11 11 1

对于用户 2 即使从 288 个 vcore 和 942 GiB 内存中只分配了 22GB 和 11 个 vcore,仍然存在挂起的容器! 知道发生了什么吗?几天前不是这种情况,不确定是什么设置导致了这种情况?

这是我的纱线网站.xml内容

 <?xml version="1.0" encoding="UTF-8"?>
    <!--Autogenerated by Cloudera Manager-->
    <configuration>
      <property>
        <name>yarn.acl.enable</name>
        <value>true</value>
      </property>
      <property>
        <name>yarn.admin.acl</name>
        <value>*</value>
      </property>
      <property>
        <name>yarn.resourcemanager.address</name>
        <value>hadoopmaster:8032</value>
      </property>
      <property>
        <name>yarn.resourcemanager.admin.address</name>
        <value>hadoopmaster:8033</value>
      </property>
      <property>
        <name>yarn.resourcemanager.scheduler.address</name>
        <value>hadoopmaster:8030</value>
      </property>
      <property>
        <name>yarn.resourcemanager.resource-tracker.address</name>
        <value>hadoopmaster:8031</value>
      </property>
      <property>
        <name>yarn.resourcemanager.webapp.address</name>
        <value>hadoopmaster:8088</value>
      </property>
      <property>
        <name>yarn.resourcemanager.webapp.https.address</name>
        <value>hadoopmaster:8090</value>
      </property>
      <property>
        <name>yarn.resourcemanager.client.thread-count</name>
        <value>50</value>
      </property>
      <property>
        <name>yarn.resourcemanager.scheduler.client.thread-count</name>
        <value>50</value>
      </property>
      <property>
        <name>yarn.resourcemanager.admin.client.thread-count</name>
        <value>1</value>
      </property>
      <property>
        <name>yarn.scheduler.minimum-allocation-mb</name>
        <value>2048</value>
      </property>
      <property>
        <name>yarn.scheduler.increment-allocation-mb</name>
        <value>512</value>
      </property>
      <property>
        <name>yarn.scheduler.maximum-allocation-mb</name>
        <value>65536</value>
      </property>
      <property>
        <name>yarn.scheduler.minimum-allocation-vcores</name>
        <value>1</value>
      </property>
      <property>
        <name>yarn.scheduler.increment-allocation-vcores</name>
        <value>1</value>
      </property>
      <property>
        <name>yarn.scheduler.maximum-allocation-vcores</name>
        <value>24</value>
      </property>
      <property>
        <name>yarn.resourcemanager.amliveliness-monitor.interval-ms</name>
        <value>1000</value>
      </property>
      <property>
        <name>yarn.am.liveness-monitor.expiry-interval-ms</name>
        <value>600000</value>
      </property>
      <property>
        <name>yarn.resourcemanager.am.max-attempts</name>
        <value>2</value>
      </property>
      <property>
        <name>yarn.resourcemanager.container.liveness-monitor.interval-ms</name>
        <value>600000</value>
      </property>
      <property>
        <name>yarn.resourcemanager.nm.liveness-monitor.interval-ms</name>
        <value>1000</value>
      </property>
      <property>
        <name>yarn.nm.liveness-monitor.expiry-interval-ms</name>
        <value>600000</value>
      </property>
      <property>
        <name>yarn.resourcemanager.resource-tracker.client.thread-count</name>
        <value>50</value>
      </property>
      <property>
        <name>yarn.application.classpath</name>
        <value>$HADOOP_CLIENT_CONF_DIR,$HADOOP_CONF_DIR,$HADOOP_COMMON_HOME/*,$HADOOP_COMMON_HOME/lib/*,$HADOOP_HDFS_HOME/*,$HADOOP_HDFS_HOME/lib/*,$HADOOP_YARN_HOME/*,$HADOOP_YARN_HOME/lib/*</value>
      </property>
      <property>
        <name>yarn.resourcemanager.scheduler.class</name>
        <value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler</value>
      </property>
      <property>
        <name>yarn.scheduler.fair.user-as-default-queue</name>
        <value>true</value>
      </property>
      <property>
        <name>yarn.scheduler.fair.preemption</name>
        <value>true</value>
      </property>
      <property>
        <name>yarn.scheduler.fair.sizebasedweight</name>
        <value>false</value>
      </property>
      <property>
        <name>yarn.scheduler.fair.assignmultiple</name>
        <value>true</value>
      </property>
      <property>
        <name>yarn.resourcemanager.max-completed-applications</name>
        <value>10000</value>
      </property>
    </configuration>

您能否检查公平调度程序.xml文件的值"maxRunningApps",该值定义了可以在任何队列中运行的并发应用程序的数量。

请参考 https://hadoop.apache.org/docs/r2.4.1/hadoop-yarn/hadoop-yarn-site/FairScheduler.html

相关内容

  • 没有找到相关文章