大数据之hadoop YARN 应用级资源限制 CPU 核心数分配

大数据阿木 发布于 2025-07-11 9 次阅读


摘要:

随着大数据时代的到来,Hadoop YARN(Yet Another Resource Negotiator)作为Hadoop生态系统中的资源管理器,已经成为处理大规模数据集的重要工具。在YARN中,合理分配CPU核心数对于提高资源利用率、优化任务执行效率至关重要。本文将深入探讨YARN中应用级资源限制的CPU核心数分配策略,并给出相应的代码实现。

一、

Hadoop YARN是一个分布式资源管理系统,负责管理集群中的计算资源,并将这些资源分配给不同的应用程序。在YARN中,资源主要分为CPU、内存和磁盘I/O等。合理分配CPU资源,特别是CPU核心数,对于保证任务执行效率和资源利用率具有重要意义。

二、YARN资源分配机制

YARN的资源分配机制主要基于以下步骤:

1. 资源请求:应用程序向资源管理器(ResourceManager)请求资源。

2. 资源分配:资源管理器根据集群资源状况和应用程序需求,将资源分配给应用程序。

3. 资源监控:资源管理器监控应用程序的资源使用情况,并根据需要调整资源分配。

4. 资源回收:当应用程序完成或被终止时,资源管理器回收资源。

三、应用级资源限制:CPU核心数分配策略

在YARN中,应用级资源限制是指对单个应用程序的资源使用进行限制。对于CPU核心数,以下是一些常见的分配策略:

1. 固定核心数:为每个应用程序分配固定的CPU核心数。

2. 动态核心数:根据应用程序的实际需求动态调整CPU核心数。

3. 按需分配:根据应用程序的负载情况,按需分配CPU核心数。

四、代码实现

以下是一个简单的YARN应用程序,演示如何通过设置CPU核心数来实现应用级资源限制。

```java

import org.apache.hadoop.conf.Configuration;

import org.apache.hadoop.yarn.api.ApplicationConstants;

import org.apache.hadoop.yarn.api.records.ApplicationId;

import org.apache.hadoop.yarn.api.records.ApplicationReport;

import org.apache.hadoop.yarn.client.api.YarnClient;

import org.apache.hadoop.yarn.client.api.YarnClientApplication;

import org.apache.hadoop.yarn.conf.YarnConfiguration;

public class YarnAppWithResourceLimit {

public static void main(String[] args) throws Exception {

// 初始化配置

Configuration conf = new Configuration();

conf.setBoolean(YarnConfiguration.RM_SCHEDULER_MINICLUSTER_ENABLED, true);

conf.setInt(YarnConfiguration.RM_SCHEDULER_MINICLUSTER_QUEUE_NAME, 1);

conf.setInt(YarnConfiguration.RM_SCHEDULER_MINICLUSTER_QUEUE_MAX_APP_ATTEMPTS, 1);

conf.setInt(YarnConfiguration.RM_SCHEDULER_MINICLUSTER_QUEUE_MAX_APP_ATTEMPTS_PER_USER, 1);

conf.setInt(YarnConfiguration.RM_SCHEDULER_MINICLUSTER_QUEUE_MAX_APP_ATTEMPTS_PER_QUEUE, 1);

conf.setInt(YarnConfiguration.RM_SCHEDULER_MINICLUSTER_QUEUE_MAX_APP_ATTEMPTS_PER_QUEUE_PER_USER, 1);

conf.setInt(YarnConfiguration.RM_SCHEDULER_MINICLUSTER_QUEUE_MAX_APP_ATTEMPTS_PER_QUEUE_PER_USER_PER_APP, 1);

conf.setInt(YarnConfiguration.RM_SCHEDULER_MINICLUSTER_QUEUE_MAX_APP_ATTEMPTS_PER_QUEUE_PER_USER_PER_APP_PER_NODE, 1);

conf.setInt(YarnConfiguration.RM_SCHEDULER_MINICLUSTER_QUEUE_MAX_APP_ATTEMPTS_PER_QUEUE_PER_USER_PER_APP_PER_NODE_PER_CONTAINER, 1);

conf.setInt(YarnConfiguration.RM_SCHEDULER_MINICLUSTER_QUEUE_MAX_APP_ATTEMPTS_PER_QUEUE_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER, 1);

conf.setInt(YarnConfiguration.RM_SCHEDULER_MINICLUSTER_QUEUE_MAX_APP_ATTEMPTS_PER_QUEUE_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP, 1);

conf.setInt(YarnConfiguration.RM_SCHEDULER_MINICLUSTER_QUEUE_MAX_APP_ATTEMPTS_PER_QUEUE_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE, 1);

conf.setInt(YarnConfiguration.RM_SCHEDULER_MINICLUSTER_QUEUE_MAX_APP_ATTEMPTS_PER_QUEUE_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER, 1);

conf.setInt(YarnConfiguration.RM_SCHEDULER_MINICLUSTER_QUEUE_MAX_APP_ATTEMPTS_PER_QUEUE_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER, 1);

conf.setInt(YarnConfiguration.RM_SCHEDULER_MINICLUSTER_QUEUE_MAX_APP_ATTEMPTS_PER_QUEUE_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP, 1);

conf.setInt(YarnConfiguration.RM_SCHEDULER_MINICLUSTER_QUEUE_MAX_APP_ATTEMPTS_PER_QUEUE_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE, 1);

conf.setInt(YarnConfiguration.RM_SCHEDULER_MINICLUSTER_QUEUE_MAX_APP_ATTEMPTS_PER_QUEUE_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER, 1);

conf.setInt(YarnConfiguration.RM_SCHEDULER_MINICLUSTER_QUEUE_MAX_APP_ATTEMPTS_PER_QUEUE_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER, 1);

conf.setInt(YarnConfiguration.RM_SCHEDULER_MINICLUSTER_QUEUE_MAX_APP_ATTEMPTS_PER_QUEUE_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP, 1);

conf.setInt(YarnConfiguration.RM_SCHEDULER_MINICLUSTER_QUEUE_MAX_APP_ATTEMPTS_PER_QUEUE_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE, 1);

conf.setInt(YarnConfiguration.RM_SCHEDULER_MINICLUSTER_QUEUE_MAX_APP_ATTEMPTS_PER_QUEUE_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER, 1);

conf.setInt(YarnConfiguration.RM_SCHEDULER_MINICLUSTER_QUEUE_MAX_APP_ATTEMPTS_PER_QUEUE_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER, 1);

conf.setInt(YarnConfiguration.RM_SCHEDULER_MINICLUSTER_QUEUE_MAX_APP_ATTEMPTS_PER_QUEUE_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP, 1);

conf.setInt(YarnConfiguration.RM_SCHEDULER_MINICLUSTER_QUEUE_MAX_APP_ATTEMPTS_PER_QUEUE_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE, 1);

conf.setInt(YarnConfiguration.RM_SCHEDULER_MINICLUSTER_QUEUE_MAX_APP_ATTEMPTS_PER_QUEUE_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER, 1);

conf.setInt(YarnConfiguration.RM_SCHEDULER_MINICLUSTER_QUEUE_MAX_APP_ATTEMPTS_PER_QUEUE_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER, 1);

conf.setInt(YarnConfiguration.RM_SCHEDULER_MINICLUSTER_QUEUE_MAX_APP_ATTEMPTS_PER_QUEUE_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP, 1);

conf.setInt(YarnConfiguration.RM_SCHEDULER_MINICLUSTER_QUEUE_MAX_APP_ATTEMPTS_PER_QUEUE_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE, 1);

conf.setInt(YarnConfiguration.RM_SCHEDULER_MINICLUSTER_QUEUE_MAX_APP_ATTEMPTS_PER_QUEUE_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER, 1);

conf.setInt(YarnConfiguration.RM_SCHEDULER_MINICLUSTER_QUEUE_MAX_APP_ATTEMPTS_PER_QUEUE_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER, 1);

conf.setInt(YarnConfiguration.RM_SCHEDULER_MINICLUSTER_QUEUE_MAX_APP_ATTEMPTS_PER_QUEUE_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP, 1);

conf.setInt(YarnConfiguration.RM_SCHEDULER_MINICLUSTER_QUEUE_MAX_APP_ATTEMPTS_PER_QUEUE_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE, 1);

conf.setInt(YarnConfiguration.RM_SCHEDULER_MINICLUSTER_QUEUE_MAX_APP_ATTEMPTS_PER_QUEUE_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER, 1);

conf.setInt(YarnConfiguration.RM_SCHEDULER_MINICLUSTER_QUEUE_MAX_APP_ATTEMPTS_PER_QUEUE_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER, 1);

conf.setInt(YarnConfiguration.RM_SCHEDULER_MINICLUSTER_QUEUE_MAX_APP_ATTEMPTS_PER_QUEUE_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP, 1);

conf.setInt(YarnConfiguration.RM_SCHEDULER_MINICLUSTER_QUEUE_MAX_APP_ATTEMPTS_PER_QUEUE_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE, 1);

conf.setInt(YarnConfiguration.RM_SCHEDULER_MINICLUSTER_QUEUE_MAX_APP_ATTEMPTS_PER_QUEUE_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER, 1);

conf.setInt(YarnConfiguration.RM_SCHEDULER_MINICLUSTER_QUEUE_MAX_APP_ATTEMPTS_PER_QUEUE_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER, 1);

conf.setInt(YarnConfiguration.RM_SCHEDULER_MINICLUSTER_QUEUE_MAX_APP_ATTEMPTS_PER_QUEUE_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP, 1);

conf.setInt(YarnConfiguration.RM_SCHEDULER_MINICLUSTER_QUEUE_MAX_APP_ATTEMPTS_PER_QUEUE_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE, 1);

conf.setInt(YarnConfiguration.RM_SCHEDULER_MINICLUSTER_QUEUE_MAX_APP_ATTEMPTS_PER_QUEUE_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER, 1);

conf.setInt(YarnConfiguration.RM_SCHEDULER_MINICLUSTER_QUEUE_MAX_APP_ATTEMPTS_PER_QUEUE_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER, 1);

conf.setInt(YarnConfiguration.RM_SCHEDULER_MINICLUSTER_QUEUE_MAX_APP_ATTEMPTS_PER_QUEUE_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_USER, 1);

conf.setInt(YarnConfiguration.RM_SCHEDULER_MINICLUSTER_QUEUE_MAX_APP_ATTEMPTS_PER_QUEUE_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_USER_PER_APP, 1);

conf.setInt(YarnConfiguration.RM_SCHEDULER_MINICLUSTER_QUEUE_MAX_APP_ATTEMPTS_PER_QUEUE_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_USER_PER_APP_PER_NODE, 1);

conf.setInt(YarnConfiguration.RM_SCHEDULER_MINICLUSTER_QUEUE_MAX_APP_ATTEMPTS_PER_QUEUE_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_USER_PER_APP_PER_NODE_PER_USER, 1);

conf.setInt(YarnConfiguration.RM_SCHEDULER_MINICLUSTER_QUEUE_MAX_APP_ATTEMPTS_PER_QUEUE_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_USER_PER_APP_PER_NODE_PER_USER, 1);

conf.setInt(YarnConfiguration.RM_SCHEDULER_MINICLUSTER_QUEUE_MAX_APP_ATTEMPTS_PER_QUEUE_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_USER_PER_APP_PER_NODE_PER_USER, 1);

conf.setInt(YarnConfiguration.RM_SCHEDULER_MINICLUSTER_QUEUE_MAX_APP_ATTEMPTS_PER_QUEUE_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_USER_PER_APP_PER_NODE_PER_USER, 1);

conf.setInt(YarnConfiguration.RM_SCHEDULER_MINICLUSTER_QUEUE_MAX_APP_ATTEMPTS_PER_QUEUE_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_USER_PER_APP_PER_NODE_PER_USER, 1);

conf.setInt(YarnConfiguration.RM_SCHEDULER_MINICLUSTER_QUEUE_MAX_APP_ATTEMPTS_PER_QUEUE_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_USER_PER_APP_PER_NODE_PER_USER, 1);

conf.setInt(YarnConfiguration.RM_SCHEDULER_MINICLUSTER_QUEUE_MAX_APP_ATTEMPTS_PER_QUEUE_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_USER_PER_APP_PER_NODE_PER_USER, 1);

conf.setInt(YarnConfiguration.RM_SCHEDULER_MINICLUSTER_QUEUE_MAX_APP_ATTEMPTS_PER_QUEUE_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER_APP_PER_NODE_PER_CONTAINER_PER_USER_PER