All Downloads are FREE. Search and download functionalities are using the official Maven repository.

doop.hadoop-yarn-api.3.3.1.source-code.yarn-default.xml Maven / Gradle / Ivy

There is a newer version: 3.4.0
Show newest version
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!--
   Licensed to the Apache Software Foundation (ASF) under one or more
   contributor license agreements.  See the NOTICE file distributed with
   this work for additional information regarding copyright ownership.
   The ASF licenses this file to You under the Apache License, Version 2.0
   (the "License"); you may not use this file except in compliance with
   the License.  You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
-->

<!-- Do not modify this file directly.  Instead, copy entries that you -->
<!-- wish to modify from this file into yarn-site.xml and change them -->
<!-- there.  If yarn-site.xml does not already exist, create it.      -->

<configuration>

  <!-- IPC Configuration -->

  <property>
    <description>Factory to create client IPC classes.</description>
    <name>yarn.ipc.client.factory.class</name>
  </property>

  <property>
    <description>Factory to create server IPC classes.</description>
    <name>yarn.ipc.server.factory.class</name>
  </property>

  <property>
    <description>Factory to create serializeable records.</description>
    <name>yarn.ipc.record.factory.class</name>
  </property>

  <property>
    <description>RPC class implementation</description>
    <name>yarn.ipc.rpc.class</name>
    <value>org.apache.hadoop.yarn.ipc.HadoopYarnProtoRPC</value>
  </property>
  
  <!-- Resource Manager Configuration -->

  <property>
    <description>The hostname of the RM.</description>
    <name>yarn.resourcemanager.hostname</name>
    <value>0.0.0.0</value>
  </property>    
  
  <property>
    <description>The address of the applications manager interface in the RM.</description>
    <name>yarn.resourcemanager.address</name>
    <value>${yarn.resourcemanager.hostname}:8032</value>
  </property>

  <property>
    <description>
      The actual address the server will bind to. If this optional address is
      set, the RPC and webapp servers will bind to this address and the port specified in
      yarn.resourcemanager.address and yarn.resourcemanager.webapp.address, respectively. This
      is most useful for making RM listen to all interfaces by setting to 0.0.0.0.
    </description>
    <name>yarn.resourcemanager.bind-host</name>
    <value></value>
  </property>

  <property>
    <description>
      If set to true, then ALL container updates will be automatically sent to
      the NM in the next heartbeat</description>
    <name>yarn.resourcemanager.auto-update.containers</name>
    <value>false</value>
  </property>

  <property>
    <description>The number of threads used to handle applications manager requests.</description>
    <name>yarn.resourcemanager.client.thread-count</name>
    <value>50</value>
  </property>

  <property>
    <description>Number of threads used to launch/cleanup AM.</description>
    <name>yarn.resourcemanager.amlauncher.thread-count</name>
    <value>50</value>
  </property>

  <property>
    <description>Retry times to connect with NM.</description>
    <name>yarn.resourcemanager.nodemanager-connect-retries</name>
    <value>10</value>
  </property>

  <property>
    <description>Timeout in milliseconds when YARN dispatcher tries to drain the
      events. Typically, this happens when service is stopping. e.g. RM drains
      the ATS events dispatcher when stopping.
    </description>
    <name>yarn.dispatcher.drain-events.timeout</name>
    <value>300000</value>
  </property>

  <property>
    <description>
      The threshold used to trigger the logging of event types
      and counts in RM's main event dispatcher. Default length is 5000,
      which means RM will print events info when the queue size cumulatively
      reaches 5000 every time. Such info can be used to reveal what kind of events
      that RM is stuck at processing mostly, it can help to
      narrow down certain performance issues.
    </description>
    <name>yarn.dispatcher.print-events-info.threshold</name>
    <value>5000</value>
  </property>

  <property>
    <description>
      Resource manager dispatcher thread cpu monitor sampling rate.
      Units are samples per minute.  This controls how often to sample
      the cpu utilization of the resource manager dispatcher thread.
      The cpu utilization is displayed on the RM UI as scheduler busy %.
      Set this to zero to disable the dispatcher thread monitor.  Defaults
      to 60 samples per minute.
    </description>
    <name>yarn.dispatcher.cpu-monitor.samples-per-min</name>
    <value>60</value>
  </property>

  <property>
    <description>The expiry interval for application master reporting.</description>
    <name>yarn.am.liveness-monitor.expiry-interval-ms</name>
    <value>600000</value>
  </property>

  <property>
    <description>The Kerberos principal for the resource manager.</description>
    <name>yarn.resourcemanager.principal</name>
  </property>

  <property>
    <description>The address of the scheduler interface.</description>
    <name>yarn.resourcemanager.scheduler.address</name>
    <value>${yarn.resourcemanager.hostname}:8030</value>
  </property>

  <property>
    <description>Number of threads to handle scheduler interface.</description>
    <name>yarn.resourcemanager.scheduler.client.thread-count</name>
    <value>50</value>
  </property>

  <property>
    <description>
      Specify which handler will be used to process PlacementConstraints.
      Acceptable values are: `placement-processor`, `scheduler` and `disabled`.
      For a detailed explanation of these values, please refer to documentation.
    </description>
    <name>yarn.resourcemanager.placement-constraints.handler</name>
    <value>disabled</value>
  </property>

  <property>
    <description>Number of times to retry placing of rejected SchedulingRequests</description>
    <name>yarn.resourcemanager.placement-constraints.retry-attempts</name>
    <value>3</value>
  </property>

  <property>
    <description>Constraint Placement Algorithm to be used.</description>
    <name>yarn.resourcemanager.placement-constraints.algorithm.class</name>
    <value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.constraint.algorithm.DefaultPlacementAlgorithm</value>
  </property>

  <property>
    <description>Placement Algorithm Requests Iterator to be used.</description>
    <name>yarn.resourcemanager.placement-constraints.algorithm.iterator</name>
    <value>SERIAL</value>
  </property>

  <property>
    <description>Threadpool size for the Algorithm used for placement constraint processing.</description>
    <name>yarn.resourcemanager.placement-constraints.algorithm.pool-size</name>
    <value>1</value>
  </property>

  <property>
    <description>Threadpool size for the Scheduler invocation phase of placement constraint processing.</description>
    <name>yarn.resourcemanager.placement-constraints.scheduler.pool-size</name>
    <value>1</value>
  </property>

  <property>
    <description>
      Comma separated class names of ApplicationMasterServiceProcessor
      implementations. The processors will be applied in the order
      they are specified.
    </description>
    <name>yarn.resourcemanager.application-master-service.processors</name>
    <value></value>
  </property>

  <property>
      <description>
        This configures the HTTP endpoint for YARN Daemons.The following
        values are supported:
        - HTTP_ONLY : Service is provided only on http
        - HTTPS_ONLY : Service is provided only on https
      </description>
      <name>yarn.http.policy</name>
      <value>HTTP_ONLY</value>
  </property>

  <property>
    <description>
      The http address of the RM web application.
      If only a host is provided as the value,
      the webapp will be served on a random port.
    </description>
    <name>yarn.resourcemanager.webapp.address</name>
    <value>${yarn.resourcemanager.hostname}:8088</value>
  </property>

  <property>
    <description>
      The https address of the RM web application.
      If only a host is provided as the value,
      the webapp will be served on a random port.
    </description>
    <name>yarn.resourcemanager.webapp.https.address</name>
    <value>${yarn.resourcemanager.hostname}:8090</value>
  </property>

  <property>
    <description>
    The Kerberos keytab file to be used for spnego filter for the RM web
    interface.
    </description>
    <name>yarn.resourcemanager.webapp.spnego-keytab-file</name>
    <value></value>
  </property>

  <property>
    <description>
    The Kerberos principal to be used for spnego filter for the RM web
    interface.
    </description>
    <name>yarn.resourcemanager.webapp.spnego-principal</name>
    <value></value>
  </property>

  <property>
    <description>
    Add button to kill application in the RM Application view.
    </description>
    <name>yarn.resourcemanager.webapp.ui-actions.enabled</name>
    <value>true</value>
  </property>

  <property>
    <description>To enable RM web ui2 application.</description>
    <name>yarn.webapp.ui2.enable</name>
    <value>false</value>
  </property>

  <property>
    <description>
      Explicitly provide WAR file path for ui2 if needed.
    </description>
    <name>yarn.webapp.ui2.war-file-path</name>
    <value></value>
  </property>

  <property>
    <description>
      Enable services rest api on ResourceManager.
    </description>
    <name>yarn.webapp.api-service.enable</name>
    <value>false</value>
  </property>

  <property>
    <name>yarn.resourcemanager.resource-tracker.address</name>
    <value>${yarn.resourcemanager.hostname}:8031</value>
  </property>

  <property>
   <name>yarn.resourcemanager.resource-tracker.nm.ip-hostname-check</name>
   <value>false</value>
  </property>

  <property>
    <description>Are acls enabled.</description>
    <name>yarn.acl.enable</name>
    <value>false</value>
  </property>

  <property>
    <description>Are reservation acls enabled.</description>
    <name>yarn.acl.reservation-enable</name>
    <value>false</value>
  </property>

  <property>
    <description>ACL of who can be admin of the YARN cluster.</description>
    <name>yarn.admin.acl</name>
    <value>*</value>
  </property>

  <property>
    <description>The address of the RM admin interface.</description>
    <name>yarn.resourcemanager.admin.address</name>
    <value>${yarn.resourcemanager.hostname}:8033</value>
  </property>

  <property>
    <description>Number of threads used to handle RM admin interface.</description>
    <name>yarn.resourcemanager.admin.client.thread-count</name>
    <value>1</value>
  </property>

  <property>
    <description>Maximum time to wait to establish connection to
    ResourceManager.</description>
    <name>yarn.resourcemanager.connect.max-wait.ms</name>
    <value>900000</value>
  </property>

  <property>
    <description>How often to try connecting to the
    ResourceManager.</description>
    <name>yarn.resourcemanager.connect.retry-interval.ms</name>
    <value>30000</value>
  </property>

  <property>
    <description>The default maximum number of application attempts, if unset by
    the user. Each application master can specify its individual maximum number of application
    attempts via the API, but the individual number cannot be more than the global upper bound in
    yarn.resourcemanager.am.global.max-attempts. The default number is set to 2, to
    allow at least one retry for AM.</description>
    <name>yarn.resourcemanager.am.max-attempts</name>
    <value>2</value>
  </property>

  <property>
    <description>How often to check that containers are still alive. </description>
    <name>yarn.resourcemanager.container.liveness-monitor.interval-ms</name>
    <value>600000</value>
  </property>

  <property>
    <description>The keytab for the resource manager.</description>
    <name>yarn.resourcemanager.keytab</name>
    <value>/etc/krb5.keytab</value>
  </property>

  <property>
    <description>Flag to enable override of the default kerberos authentication
    filter with the RM authentication filter to allow authentication using
    delegation tokens(fallback to kerberos if the tokens are missing). Only
    applicable when the http authentication type is kerberos.</description>
    <name>yarn.resourcemanager.webapp.delegation-token-auth-filter.enabled</name>
    <value>true</value>
  </property>

  <property>
    <description>Flag to enable cross-origin (CORS) support in the RM. This flag
    requires the CORS filter initializer to be added to the filter initializers
    list in core-site.xml.</description>
    <name>yarn.resourcemanager.webapp.cross-origin.enabled</name>
    <value>false</value>
  </property>

  <property>
    <description>How long to wait until a node manager is considered dead.</description>
    <name>yarn.nm.liveness-monitor.expiry-interval-ms</name>
    <value>600000</value>
  </property>

  <property>
    <description>Path to file with nodes to include.</description>
    <name>yarn.resourcemanager.nodes.include-path</name>
    <value></value>
  </property>

  <property>
    <description>Path to file with nodes to exclude.</description>
    <name>yarn.resourcemanager.nodes.exclude-path</name>
    <value></value>
  </property>

  <property>
    <description>The expiry interval for node IP caching. -1 disables the caching</description>
    <name>yarn.resourcemanager.node-ip-cache.expiry-interval-secs</name>
    <value>-1</value>
  </property>

  <property>
    <description>Number of threads to handle resource tracker calls.</description>
    <name>yarn.resourcemanager.resource-tracker.client.thread-count</name>
    <value>50</value>
  </property>

  <property>
    <description>The class to use as the resource scheduler.</description>
    <name>yarn.resourcemanager.scheduler.class</name>
    <value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler</value>
  </property>

  <property>
    <description>The minimum allocation for every container request at the RM
    in MBs. Memory requests lower than this will be set to the value of this
    property. Additionally, a node manager that is configured to have less memory
    than this value will be shut down by the resource manager.</description>
    <name>yarn.scheduler.minimum-allocation-mb</name>
    <value>1024</value>
  </property>

  <property>
    <description>The maximum allocation for every container request at the RM
    in MBs. Memory requests higher than this will throw an
    InvalidResourceRequestException.</description>
    <name>yarn.scheduler.maximum-allocation-mb</name>
    <value>8192</value>
  </property>

  <property>
    <description>The minimum allocation for every container request at the RM
    in terms of virtual CPU cores. Requests lower than this will be set to the
    value of this property. Additionally, a node manager that is configured to
    have fewer virtual cores than this value will be shut down by the resource
    manager.</description>
    <name>yarn.scheduler.minimum-allocation-vcores</name>
    <value>1</value>
  </property>

  <property>
    <description>The maximum allocation for every container request at the RM
    in terms of virtual CPU cores. Requests higher than this will throw an
    InvalidResourceRequestException.</description>
    <name>yarn.scheduler.maximum-allocation-vcores</name>
    <value>4</value>
  </property>

  <property>
    <description>
    Used by node labels.  If set to true, the port should be included in the
    node name.  Only usable if your scheduler supports node labels.
    </description>
    <name>yarn.scheduler.include-port-in-node-name</name>
    <value>false</value>
  </property>

  <property>
    <description>Enable RM to recover state after starting. If true, then
      yarn.resourcemanager.store.class must be specified. </description>
    <name>yarn.resourcemanager.recovery.enabled</name>
    <value>false</value>
  </property>

  <property>
    <description>Should RM fail fast if it encounters any errors. By defalt, it
      points to ${yarn.fail-fast}. Errors include:
      1) exceptions when state-store write/read operations fails.
    </description>
    <name>yarn.resourcemanager.fail-fast</name>
    <value>${yarn.fail-fast}</value>
  </property>

  <property>
    <description>Should YARN fail fast if it encounters any errors.
      This is a global config for all other components including RM,NM etc.
      If no value is set for component-specific config (e.g yarn.resourcemanager.fail-fast),
      this value will be the default.
    </description>
    <name>yarn.fail-fast</name>
    <value>false</value>
  </property>

  <property>
    <description>Enable RM work preserving recovery. This configuration is private
    to YARN for experimenting the feature.
    </description>
    <name>yarn.resourcemanager.work-preserving-recovery.enabled</name>
    <value>true</value>
  </property>

  <property>
    <description>Set the amount of time RM waits before allocating new
    containers on work-preserving-recovery. Such wait period gives RM a chance
    to settle down resyncing with NMs in the cluster on recovery, before assigning
    new containers to applications.
    </description>
    <name>yarn.resourcemanager.work-preserving-recovery.scheduling-wait-ms</name>
    <value>10000</value>
  </property>

  <property>
    <description>The class to use as the persistent store.

      If org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore
      is used, the store is implicitly fenced; meaning a single ResourceManager
      is able to use the store at any point in time. More details on this
      implicit fencing, along with setting up appropriate ACLs is discussed
      under yarn.resourcemanager.zk-state-store.root-node.acl.
    </description>
    <name>yarn.resourcemanager.store.class</name>
    <value>org.apache.hadoop.yarn.server.resourcemanager.recovery.FileSystemRMStateStore</value>
  </property>

  <property>
    <description>When automatic failover is enabled, number of zookeeper
      operation retry times in ActiveStandbyElector</description>
    <name>yarn.resourcemanager.ha.failover-controller.active-standby-elector.zk.retries</name>
    <!--<value>3</value>-->
  </property>

  <property>
    <description>The maximum number of completed applications RM state
    store keeps, less than or equals to ${yarn.resourcemanager.max-completed-applications}.
    By default, it equals to ${yarn.resourcemanager.max-completed-applications}.
    This ensures that the applications kept in the state store are consistent with
    the applications remembered in RM memory.
    Any values larger than ${yarn.resourcemanager.max-completed-applications} will
    be reset to ${yarn.resourcemanager.max-completed-applications}.
    Note that this value impacts the RM recovery performance. Typically,
    a smaller value indicates better performance on RM recovery.
    </description>
    <name>yarn.resourcemanager.state-store.max-completed-applications</name>
    <value>${yarn.resourcemanager.max-completed-applications}</value>
  </property>

  <property>
    <description>Full path of the ZooKeeper znode where RM state will be
    stored. This must be supplied when using
    org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore
    as the value for yarn.resourcemanager.store.class</description>
    <name>yarn.resourcemanager.zk-state-store.parent-path</name>
    <value>/rmstore</value>
  </property>

  <property>
    <description>
      ACLs to be used for the root znode when using ZKRMStateStore in an HA
      scenario for fencing.

      ZKRMStateStore supports implicit fencing to allow a single
      ResourceManager write-access to the store. For fencing, the
      ResourceManagers in the cluster share read-write-admin privileges on the
      root node, but the Active ResourceManager claims exclusive create-delete
      permissions.

      By default, when this property is not set, we use the ACLs from
      yarn.resourcemanager.zk-acl for shared admin access and
      rm-address:random-number for username-based exclusive create-delete
      access.

      This property allows users to set ACLs of their choice instead of using
      the default mechanism. For fencing to work, the ACLs should be
      carefully set differently on each ResourceManager such that all the
      ResourceManagers have shared admin access and the Active ResourceManager
      takes over (exclusively) the create-delete access.
    </description>
    <name>yarn.resourcemanager.zk-state-store.root-node.acl</name>
  </property>

  <property>
    <description>URI pointing to the location of the FileSystem path where
    RM state will be stored. This must be supplied when using
    org.apache.hadoop.yarn.server.resourcemanager.recovery.FileSystemRMStateStore
    as the value for yarn.resourcemanager.store.class</description>
    <name>yarn.resourcemanager.fs.state-store.uri</name>
    <value>${hadoop.tmp.dir}/yarn/system/rmstore</value>
    <!--value>hdfs://localhost:9000/rmstore</value-->
  </property>

  <property>
    <description>the number of retries to recover from IOException in
    FileSystemRMStateStore.
    </description>
    <name>yarn.resourcemanager.fs.state-store.num-retries</name>
    <value>0</value>
  </property>

  <property>
    <description>Retry interval in milliseconds in FileSystemRMStateStore.
    </description>
    <name>yarn.resourcemanager.fs.state-store.retry-interval-ms</name>
    <value>1000</value>
  </property>

  <property>
    <description>Local path where the RM state will be stored when using
    org.apache.hadoop.yarn.server.resourcemanager.recovery.LeveldbRMStateStore
    as the value for yarn.resourcemanager.store.class</description>
    <name>yarn.resourcemanager.leveldb-state-store.path</name>
    <value>${hadoop.tmp.dir}/yarn/system/rmstore</value>
  </property>

  <property>
    <description>The time in seconds between full compactions of the leveldb
    database. Setting the interval to zero disables the full compaction
    cycles.</description>
    <name>yarn.resourcemanager.leveldb-state-store.compaction-interval-secs</name>
    <value>3600</value>
  </property>

  <property>
    <description>Enable RM high-availability. When enabled,
      (1) The RM starts in the Standby mode by default, and transitions to
      the Active mode when prompted to.
      (2) The nodes in the RM ensemble are listed in
      yarn.resourcemanager.ha.rm-ids
      (3) The id of each RM either comes from yarn.resourcemanager.ha.id
      if yarn.resourcemanager.ha.id is explicitly specified or can be
      figured out by matching yarn.resourcemanager.address.{id} with local address
      (4) The actual physical addresses come from the configs of the pattern
      - {rpc-config}.{id}</description>
    <name>yarn.resourcemanager.ha.enabled</name>
    <value>false</value>
  </property>

  <property>
    <description>Enable automatic failover.
      By default, it is enabled only when HA is enabled</description>
    <name>yarn.resourcemanager.ha.automatic-failover.enabled</name>
    <value>true</value>
  </property>

  <property>
    <description>Enable embedded automatic failover.
      By default, it is enabled only when HA is enabled.
      The embedded elector relies on the RM state store to handle fencing,
      and is primarily intended to be used in conjunction with ZKRMStateStore.
    </description>
    <name>yarn.resourcemanager.ha.automatic-failover.embedded</name>
    <value>true</value>
  </property>

  <property>
    <description>The base znode path to use for storing leader information,
      when using ZooKeeper based leader election.</description>
    <name>yarn.resourcemanager.ha.automatic-failover.zk-base-path</name>
    <value>/yarn-leader-election</value>
  </property>

  <property>
    <description>Index at which last section of application id (with each section
      separated by _ in application id) will be split so that application znode
      stored in zookeeper RM state store will be stored as two different znodes
      (parent-child). Split is done from the end.
      For instance, with no split, appid znode will be of the form
      application_1352994193343_0001. If the value of this config is 1, the
      appid znode will be broken into two parts application_1352994193343_000
      and 1 respectively with former being the parent node.
      application_1352994193343_0002 will then be stored as 2 under the parent
      node application_1352994193343_000. This config can take values from 0 to 4.
      0 means there will be no split. If configuration value is outside this
      range, it will be treated as config value of 0(i.e. no split). A value
      larger than 0 (up to 4) should be configured if you are storing a large number
      of apps in ZK based RM state store and state store operations are failing due to
      LenError in Zookeeper.</description>
    <name>yarn.resourcemanager.zk-appid-node.split-index</name>
    <value>0</value>
  </property>

  <property>
    <description>Index at which the RM Delegation Token ids will be split so
      that the delegation token znodes stored in the zookeeper RM state store
      will be stored as two different znodes (parent-child). The split is done
      from the end. For instance, with no split, a delegation token znode will
      be of the form RMDelegationToken_123456789. If the value of this config is
      1, the delegation token znode will be broken into two parts:
      RMDelegationToken_12345678 and 9 respectively with former being the parent
      node. This config can take values from 0 to 4. 0 means there will be no
      split. If the value is outside this range, it will be treated as 0 (i.e.
      no split). A value larger than 0 (up to 4) should be configured if you are
      running a large number of applications, with long-lived delegation tokens
      and state store operations (e.g. failover) are failing due to LenError in
      Zookeeper.</description>
    <name>yarn.resourcemanager.zk-delegation-token-node.split-index</name>
    <value>0</value>
  </property>

  <property>
    <description>Specifies the maximum size of the data that can be stored
      in a znode. Value should be same or less than jute.maxbuffer configured
      in zookeeper. Default value configured is 1MB.</description>
    <name>yarn.resourcemanager.zk-max-znode-size.bytes</name>
    <value>1048576</value>
  </property>

  <property>
    <description>Name of the cluster. In a HA setting,
      this is used to ensure the RM participates in leader
      election for this cluster and ensures it does not affect
      other clusters</description>
    <name>yarn.resourcemanager.cluster-id</name>
    <!--value>yarn-cluster</value-->
  </property>

  <property>
    <description>The range of values above base epoch that the RM will use before
      wrapping around</description>
    <name>yarn.resourcemanager.epoch.range</name>
    <value>0</value>
  </property>

  <property>
    <description>The list of RM nodes in the cluster when HA is
      enabled. See description of yarn.resourcemanager.ha
      .enabled for full details on how this is used.</description>
    <name>yarn.resourcemanager.ha.rm-ids</name>
    <!--value>rm1,rm2</value-->
  </property>

  <property>
    <description>The id (string) of the current RM. When HA is enabled, this
      is an optional config. The id of current RM can be set by explicitly
      specifying yarn.resourcemanager.ha.id or figured out by matching
      yarn.resourcemanager.address.{id} with local address
      See description of yarn.resourcemanager.ha.enabled
      for full details on how this is used.</description>
    <name>yarn.resourcemanager.ha.id</name>
    <!--value>rm1</value-->
  </property>

  <property>
    <description>When HA is enabled, the class to be used by Clients, AMs and
      NMs to failover to the Active RM. It should extend
      org.apache.hadoop.yarn.client.RMFailoverProxyProvider</description>
    <name>yarn.client.failover-proxy-provider</name>
    <value>org.apache.hadoop.yarn.client.ConfiguredRMFailoverProxyProvider</value>
  </property>

  <property>
    <description>When HA is not enabled, the class to be used by Clients, AMs and
      NMs to retry connecting to the Active RM. It should extend
      org.apache.hadoop.yarn.client.RMFailoverProxyProvider</description>
    <name>yarn.client.failover-no-ha-proxy-provider</name>
    <value>org.apache.hadoop.yarn.client.DefaultNoHARMFailoverProxyProvider</value>
  </property>

  <property>
    <description>When HA is enabled, the max number of times
      FailoverProxyProvider should attempt failover. When set,
      this overrides the yarn.resourcemanager.connect.max-wait.ms. When
      not set, this is inferred from
      yarn.resourcemanager.connect.max-wait.ms.</description>
    <name>yarn.client.failover-max-attempts</name>
    <!--value>15</value-->
  </property>

  <property>
    <description>When HA is enabled, the sleep base (in milliseconds) to be
      used for calculating the exponential delay between failovers. When set,
      this overrides the yarn.resourcemanager.connect.* settings. When
      not set, yarn.resourcemanager.connect.retry-interval.ms is used instead.
    </description>
    <name>yarn.client.failover-sleep-base-ms</name>
    <!--value>500</value-->
  </property>

  <property>
    <description>When HA is enabled, the maximum sleep time (in milliseconds)
      between failovers. When set, this overrides the
      yarn.resourcemanager.connect.* settings. When not set,
      yarn.resourcemanager.connect.retry-interval.ms is used instead.</description>
    <name>yarn.client.failover-sleep-max-ms</name>
    <!--value>15000</value-->
  </property>

  <property>
    <description>When HA is enabled, the number of retries per
      attempt to connect to a ResourceManager. In other words,
      it is the ipc.client.connect.max.retries to be used during
      failover attempts</description>
    <name>yarn.client.failover-retries</name>
    <value>0</value>
  </property>

  <property>
    <description>When HA is enabled, the number of retries per
      attempt to connect to a ResourceManager on socket timeouts. In other
      words, it is the ipc.client.connect.max.retries.on.timeouts to be used
      during failover attempts</description>
    <name>yarn.client.failover-retries-on-socket-timeouts</name>
    <value>0</value>
  </property>

  <property>
    <description>The maximum number of completed applications RM keeps. </description>
    <name>yarn.resourcemanager.max-completed-applications</name>
    <value>1000</value>
  </property>

  <property>
    <description>Interval at which the delayed token removal thread runs</description>
    <name>yarn.resourcemanager.delayed.delegation-token.removal-interval-ms</name>
    <value>30000</value>
  </property>

  <property>
    <description>Maximum size in bytes for configurations that can be provided
      by application to RM for delegation token renewal.
      By experiment, its roughly 128 bytes per key-value pair.
      The default value 12800 allows roughly 100 configs, may be less.
    </description>
    <name>yarn.resourcemanager.delegation-token.max-conf-size-bytes</name>
    <value>12800</value>
  </property>

  <property>
    <description>If true, ResourceManager will always try to cancel delegation
      tokens after the application completes, even if the client sets
      shouldCancelAtEnd false.  References to delegation tokens are tracked,
      so they will not be canceled until all sub-tasks are done using them.
    </description>
    <name>yarn.resourcemanager.delegation-token.always-cancel</name>
    <value>false</value>
  </property>

  <property>
  <description>If true, ResourceManager will have proxy-user privileges.
    Use case: In a secure cluster, YARN requires the user hdfs delegation-tokens to
    do localization and log-aggregation on behalf of the user. If this is set to true,
    ResourceManager is able to request new hdfs delegation tokens on behalf of
    the user. This is needed by long-running-service, because the hdfs tokens
    will eventually expire and YARN requires new valid tokens to do localization
    and log-aggregation. Note that to enable this use case, the corresponding
    HDFS NameNode has to configure ResourceManager as the proxy-user so that
    ResourceManager can itself ask for new tokens on behalf of the user when
    tokens are past their max-life-time.</description>
    <name>yarn.resourcemanager.proxy-user-privileges.enabled</name>
    <value>false</value>
  </property>

  <property>
    <description>Interval for the roll over for the master key used to generate
        application tokens
    </description>
    <name>yarn.resourcemanager.am-rm-tokens.master-key-rolling-interval-secs</name>
    <value>86400</value>
  </property>

  <property>
    <description>Interval for the roll over for the master key used to generate
        container tokens. It is expected to be much greater than
        yarn.nm.liveness-monitor.expiry-interval-ms and
        yarn.resourcemanager.rm.container-allocation.expiry-interval-ms. Otherwise the
        behavior is undefined.
    </description>
    <name>yarn.resourcemanager.container-tokens.master-key-rolling-interval-secs</name>
    <value>86400</value>
  </property>

  <property>
    <description>The heart-beat interval in milliseconds for every NodeManager in the cluster.</description>
    <name>yarn.resourcemanager.nodemanagers.heartbeat-interval-ms</name>
    <value>1000</value>
  </property>

  <property>
    <description>Enables heart-beat interval scaling.  The NodeManager
      heart-beat interval will scale based on the difference between the CPU
      utilization on the node and the cluster-wide average CPU utilization.
    </description>
    <name>
      yarn.resourcemanager.nodemanagers.heartbeat-interval-scaling-enable
    </name>
    <value>false</value>
  </property>

  <property>
    <description>If heart-beat interval scaling is enabled, this is the
      minimum heart-beat interval in milliseconds
    </description>
    <name>yarn.resourcemanager.nodemanagers.heartbeat-interval-min-ms</name>
    <value>1000</value>
  </property>

  <property>
    <description>If heart-beat interval scaling is enabled, this is the
      maximum heart-beat interval in milliseconds</description>
    <name>yarn.resourcemanager.nodemanagers.heartbeat-interval-max-ms</name>
    <value>1000</value>
  </property>

  <property>
    <description>If heart-beat interval scaling is enabled, this controls
      the degree of adjustment when speeding up heartbeat intervals.
      At 1.0, 20% less than average CPU utilization will result in a 20%
      decrease in heartbeat interval.
    </description>
    <name>
      yarn.resourcemanager.nodemanagers.heartbeat-interval-speedup-factor
    </name>
    <value>1.0</value>
  </property>

  <property>
    <description>If heart-beat interval scaling is enabled, this controls
      the degree of adjustment when slowing down heartbeat intervals.
      At 1.0, 20% greater than average CPU utilization will result in a 20%
      increase in heartbeat interval.
    </description>
    <name>
      yarn.resourcemanager.nodemanagers.heartbeat-interval-slowdown-factor
    </name>
    <value>1.0</value>
  </property>

  <property>
    <description>The minimum allowed version of a connecting nodemanager.  The valid values are
      NONE (no version checking), EqualToRM (the nodemanager's version is equal to
      or greater than the RM version), or a Version String.</description>
    <name>yarn.resourcemanager.nodemanager.minimum.version</name>
    <value>NONE</value>
  </property>

  <property>
    <description>Enable a set of periodic monitors (specified in
        yarn.resourcemanager.scheduler.monitor.policies) that affect the
        scheduler.</description>
    <name>yarn.resourcemanager.scheduler.monitor.enable</name>
    <value>false</value>
  </property>

  <property>
    <description>The list of SchedulingEditPolicy classes that interact with
        the scheduler. A particular module may be incompatible with the
        scheduler, other policies, or a configuration of either.</description>
    <name>yarn.resourcemanager.scheduler.monitor.policies</name>
    <value>org.apache.hadoop.yarn.server.resourcemanager.monitor.capacity.ProportionalCapacityPreemptionPolicy</value>
  </property>

  <property>
    <description>The class to use as the configuration provider.
    If org.apache.hadoop.yarn.LocalConfigurationProvider is used,
    the local configuration will be loaded.
    If org.apache.hadoop.yarn.FileSystemBasedConfigurationProvider is used,
    the configuration which will be loaded should be uploaded to remote File system first.
    </description>
    <name>yarn.resourcemanager.configuration.provider-class</name>
    <value>org.apache.hadoop.yarn.LocalConfigurationProvider</value>
    <!-- <value>org.apache.hadoop.yarn.FileSystemBasedConfigurationProvider</value> -->
  </property>

  <property>
    <description>
    The value specifies the file system (e.g. HDFS) path where ResourceManager
    loads configuration if yarn.resourcemanager.configuration.provider-class
    is set to org.apache.hadoop.yarn.FileSystemBasedConfigurationProvider.
    </description>
    <name>yarn.resourcemanager.configuration.file-system-based-store</name>
    <value>/yarn/conf</value>
  </property>

  <property>
    <description>The setting that controls whether yarn system metrics is
    published to the Timeline server (version one) or not, by RM.
    This configuration is now deprecated in favor of
    yarn.system-metrics-publisher.enabled.</description>
    <name>yarn.resourcemanager.system-metrics-publisher.enabled</name>
    <value>false</value>
  </property>

  <property>
    <description>The setting that controls whether yarn system metrics is
    published on the Timeline service or not by RM And NM.</description>
    <name>yarn.system-metrics-publisher.enabled</name>
    <value>false</value>
  </property>

  <property>
    <description>The setting that controls whether yarn container events are
    published to the timeline service or not by RM. This configuration setting
    is for ATS V2.</description>
    <name>yarn.rm.system-metrics-publisher.emit-container-events</name>
    <value>false</value>
  </property>


  <property>
    <description>Number of worker threads that send the yarn system metrics
    data.</description>
    <name>yarn.resourcemanager.system-metrics-publisher.dispatcher.pool-size</name>
    <value>10</value>
  </property>

  <property>
    <description>Number of diagnostics/failure messages can be saved in RM for
    log aggregation. It also defines the number of diagnostics/failure
    messages can be shown in log aggregation web ui.</description>
    <name>yarn.resourcemanager.max-log-aggregation-diagnostics-in-memory</name>
    <value>10</value>
  </property>

  <!-- Node Manager Configs -->

  <property>
    <description>
    RM DelegationTokenRenewer thread count
    </description>
    <name>yarn.resourcemanager.delegation-token-renewer.thread-count</name>
    <value>50</value>
  </property>

  <property>
    <description>
    RM secret key update interval in ms
    </description>
    <name>yarn.resourcemanager.delegation.key.update-interval</name>
    <value>86400000</value>
  </property>

  <property>
    <description>
    RM delegation token maximum lifetime in ms
    </description>
    <name>yarn.resourcemanager.delegation.token.max-lifetime</name>
    <value>604800000</value>
  </property>

  <property>
    <description>
    RM delegation token update interval in ms
    </description>
    <name>yarn.resourcemanager.delegation.token.renew-interval</name>
    <value>86400000</value>
  </property>

  <property>
    <description>
    RM DelegationTokenRenewer thread timeout
    </description>
    <name>yarn.resourcemanager.delegation-token-renewer.thread-timeout</name>
    <value>60s</value>
  </property>

  <property>
    <description>
    Default maximum number of retries for each RM DelegationTokenRenewer thread
    </description>
    <name>yarn.resourcemanager.delegation-token-renewer.thread-retry-max-attempts</name>
    <value>10</value>
  </property>

  <property>
    <description>
    Time interval between each RM DelegationTokenRenewer thread retry attempt
    </description>
    <name>yarn.resourcemanager.delegation-token-renewer.thread-retry-interval</name>
    <value>60s</value>
  </property>

  <property>
    <description>
    Thread pool size for RMApplicationHistoryWriter.
    </description>
    <name>yarn.resourcemanager.history-writer.multi-threaded-dispatcher.pool-size</name>
    <value>10</value>
  </property>

  <property>
    <description>
    Comma-separated list of values (in minutes) for schedule queue related
    metrics.
    </description>
    <name>yarn.resourcemanager.metrics.runtime.buckets</name>
    <value>60,300,1440</value>
  </property>

  <property>
    <description>
    Interval for the roll over for the master key used to generate
    NodeManager tokens.  It is expected to be set to a value much larger
    than yarn.nm.liveness-monitor.expiry-interval-ms.
    </description>
    <name>yarn.resourcemanager.nm-tokens.master-key-rolling-interval-secs</name>
    <value>86400</value>
  </property>

  <property>
    <description>
    Flag to enable the ResourceManager reservation system.
    </description>
    <name>yarn.resourcemanager.reservation-system.enable</name>
    <value>false</value>
  </property>

  <property>
    <description>
    The Java class to use as the ResourceManager reservation system.
    By default, is set to
    org.apache.hadoop.yarn.server.resourcemanager.reservation.CapacityReservationSystem
    when using CapacityScheduler and is set to
    org.apache.hadoop.yarn.server.resourcemanager.reservation.FairReservationSystem
    when using FairScheduler.
    </description>
    <name>yarn.resourcemanager.reservation-system.class</name>
    <value></value>
  </property>

  <property>
    <description>
    The plan follower policy class name to use for the ResourceManager
    reservation system.
    By default, is set to
    org.apache.hadoop.yarn.server.resourcemanager.reservation.CapacitySchedulerPlanFollower
    is used when using CapacityScheduler, and is set to
    org.apache.hadoop.yarn.server.resourcemanager.reservation.FairSchedulerPlanFollower
    when using FairScheduler.
    </description>
    <name>yarn.resourcemanager.reservation-system.plan.follower</name>
    <value></value>
  </property>

  <property>
    <description>
    Step size of the reservation system in ms
    </description>
    <name>yarn.resourcemanager.reservation-system.planfollower.time-step</name>
    <value>1000</value>
  </property>

  <property>
    <description>
    The expiry interval for a container
    </description>
    <name>yarn.resourcemanager.rm.container-allocation.expiry-interval-ms</name>
    <value>600000</value>
  </property>

  <property>
    <description>
    Flag to enable/disable resource profiles
    </description>
    <name>yarn.resourcemanager.resource-profiles.enabled</name>
    <value>false</value>
  </property>

  <property>
    <description>
    If resource profiles is enabled, source file for the profiles
    </description>
    <name>yarn.resourcemanager.resource-profiles.source-file</name>
    <value>resource-profiles.json</value>
  </property>

  <!-- Node Manager Configuration -->

  <property>
    <description>The hostname of the NM.</description>
    <name>yarn.nodemanager.hostname</name>
    <value>0.0.0.0</value>
  </property>
  
  <property>
    <description>The address of the container manager in the NM.</description>
    <name>yarn.nodemanager.address</name>
    <value>${yarn.nodemanager.hostname}:0</value>
  </property>

  <property>
    <description>
      The actual address the server will bind to. If this optional address is
      set, the RPC and webapp servers will bind to this address and the port specified in
      yarn.nodemanager.address and yarn.nodemanager.webapp.address, respectively. This is
      most useful for making NM listen to all interfaces by setting to 0.0.0.0.
    </description>
    <name>yarn.nodemanager.bind-host</name>
    <value></value>
  </property>

  <property>
    <description>
      Environment variables that should be forwarded from the NodeManager's
      environment to the container's, specified as a comma separated list of
      VARNAME=value pairs.

      To define environment variables individually, you can specify
      multiple properties of the form yarn.nodemanager.admin-env.VARNAME,
      where VARNAME is the name of the environment variable. This is the only
      way to add a variable when its value contains commas.
    </description>
    <name>yarn.nodemanager.admin-env</name>
    <value>MALLOC_ARENA_MAX=$MALLOC_ARENA_MAX</value>
  </property>

  <property>
    <description>
      * PATH components that will be prepended to the user's path.
      * If this is defined and the user does not define PATH, NM will also
      * append ":$PATH" to prevent this from eclipsing the PATH defined in
      * the container. This feature is only available for Linux.
    </description>
    <name>yarn.nodemanager.force.path</name>
    <value></value>
  </property>

  <property>
    <description>Environment variables that containers may override rather than use NodeManager's default.</description>
    <name>yarn.nodemanager.env-whitelist</name>
    <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_HOME,PATH,LANG,TZ</value>
  </property>

  <property>
    <description>who will execute(launch) the containers.</description>
    <name>yarn.nodemanager.container-executor.class</name>
    <value>org.apache.hadoop.yarn.server.nodemanager.DefaultContainerExecutor</value>
  </property>

  <property>
    <description>Comma separated List of container state transition listeners.</description>
    <name>yarn.nodemanager.container-state-transition-listener.classes</name>
    <value></value>
  </property>

  <property>
    <description>Number of threads container manager uses.</description>
    <name>yarn.nodemanager.container-manager.thread-count</name>
    <value>20</value>
  </property>

    <property>
    <description>Number of threads collector service uses.</description>
    <name>yarn.nodemanager.collector-service.thread-count</name>
    <value>5</value>
  </property>

  <property>
    <description>Number of threads used in cleanup.</description>
    <name>yarn.nodemanager.delete.thread-count</name>
    <value>4</value>
  </property>

  <property>
    <description>
      How long the container executor should wait for the exit code file to
      appear after a reacquired container has exited.
    </description>
    <name>yarn.nodemanager.container-executor.exit-code-file.timeout-ms</name>
    <value>2000</value>
  </property>

  <property>
    <description>Max number of OPPORTUNISTIC containers to queue at the
      nodemanager.</description>
    <name>yarn.nodemanager.opportunistic-containers-max-queue-length</name>
    <value>0</value>
  </property>

  <property>
    <description>
      Number of seconds after an application finishes before the nodemanager's 
      DeletionService will delete the application's localized file directory
      and log directory.
      
      To diagnose YARN application problems, set this property's value large
      enough (for example, to 600 = 10 minutes) to permit examination of these
      directories. After changing the property's value, you must restart the 
      nodemanager in order for it to have an effect.

      The roots of YARN applications' work directories is configurable with
      the yarn.nodemanager.local-dirs property (see below), and the roots
      of the YARN applications' log directories is configurable with the
      yarn.nodemanager.log-dirs property (see also below).
    </description>
    <name>yarn.nodemanager.delete.debug-delay-sec</name>
    <value>0</value>
  </property>

  <property>
    <description>Keytab for NM.</description>
    <name>yarn.nodemanager.keytab</name>
    <value>/etc/krb5.keytab</value>
  </property>

  <property>
    <description>List of directories to store localized files in. An 
      application's localized file directory will be found in:
      ${yarn.nodemanager.local-dirs}/usercache/${user}/appcache/application_${appid}.
      Individual containers' work directories, called container_${contid}, will
      be subdirectories of this.
   </description>
    <name>yarn.nodemanager.local-dirs</name>
    <value>${hadoop.tmp.dir}/nm-local-dir</value>
  </property>

  <property>
    <description>It limits the maximum number of files which will be localized
      in a single local directory. If the limit is reached then sub-directories
      will be created and new files will be localized in them. If it is set to
      a value less than or equal to 36 [which are sub-directories (0-9 and then
      a-z)] then NodeManager will fail to start. For example; [for public
      cache] if this is configured with a value of 40 ( 4 files +
      36 sub-directories) and the local-dir is "/tmp/local-dir1" then it will
      allow 4 files to be created directly inside "/tmp/local-dir1/filecache".
      For files that are localized further it will create a sub-directory "0"
      inside "/tmp/local-dir1/filecache" and will localize files inside it
      until it becomes full. If a file is removed from a sub-directory that
      is marked full, then that sub-directory will be used back again to
      localize files.
   </description>
    <name>yarn.nodemanager.local-cache.max-files-per-directory</name>
    <value>8192</value>
  </property>

  <property>
    <description>Address where the localizer IPC is.</description>
    <name>yarn.nodemanager.localizer.address</name>
    <value>${yarn.nodemanager.hostname}:8040</value>
  </property>


  <property>
    <description>Address where the collector service IPC is.</description>
    <name>yarn.nodemanager.collector-service.address</name>
    <value>${yarn.nodemanager.hostname}:8048</value>
  </property>

  <property>
    <description>The setting that controls whether yarn container events are
      published to the timeline service or not by NM. This configuration setting
      is for ATS V2.</description>
    <name>yarn.nodemanager.emit-container-events</name>
    <value>true</value>
  </property>

  <property>
    <description>Interval in between cache cleanups.</description>
    <name>yarn.nodemanager.localizer.cache.cleanup.interval-ms</name>
    <value>600000</value>
  </property>

  <property>
    <description>Target size of localizer cache in MB, per nodemanager. It is
      a target retention size that only includes resources with PUBLIC and 
      PRIVATE visibility and excludes resources with APPLICATION visibility
    </description>
    <name>yarn.nodemanager.localizer.cache.target-size-mb</name>
    <value>10240</value>
  </property>

  <property>
    <description>Number of threads to handle localization requests.</description>
    <name>yarn.nodemanager.localizer.client.thread-count</name>
    <value>5</value>
  </property>

  <property>
    <description>Number of threads to use for localization fetching.</description>
    <name>yarn.nodemanager.localizer.fetch.thread-count</name>
    <value>4</value>
  </property>

  <property>
    <description>
    </description>
    <name>yarn.nodemanager.container-localizer.java.opts</name>
    <value>-Xmx256m</value>
  </property>

  <property>
    <description>
      The log level for container localizer while it is an independent process.
    </description>
    <name>yarn.nodemanager.container-localizer.log.level</name>
    <value>INFO</value>
  </property>

  <property>
    <description>
      Where to store container logs. An application's localized log directory
      will be found in ${yarn.nodemanager.log-dirs}/application_${appid}.
      Individual containers' log directories will be below this, in directories 
      named container_{$contid}. Each container directory will contain the files
      stderr, stdin, and syslog generated by that container.
    </description>
    <name>yarn.nodemanager.log-dirs</name>
    <value>${yarn.log.dir}/userlogs</value>
  </property>

  <property>
    <description>
      The permissions settings used for the creation of container
      directories when using DefaultContainerExecutor.  This follows
      standard user/group/all permissions format.
    </description>
    <name>yarn.nodemanager.default-container-executor.log-dirs.permissions</name>
    <value>710</value>
  </property>

  <property>
    <description>Whether to enable log aggregation. Log aggregation collects
      each container's logs and moves these logs onto a file-system, for e.g.
      HDFS, after the application completes. Users can configure the
      "yarn.nodemanager.remote-app-log-dir" and
      "yarn.nodemanager.remote-app-log-dir-suffix" properties to determine
      where these logs are moved to. Users can access the logs via the
      Application Timeline Server.
    </description>
    <name>yarn.log-aggregation-enable</name>
    <value>false</value>
  </property>

  <property>
    <description>
      Whether to enable application placement based on user ID passed via
      application tags. When it is enabled, userid=&lt;userId&gt;
      pattern will be checked and if found, the application will be placed
      onto the found user's queue,
      if the original user has enough rights on the passed user's queue.
    </description>
    <name>yarn.resourcemanager.application-tag-based-placement.enable</name>
    <value>false</value>
  </property>

  <property>
    <description>
      Comma separated list of users who can use the application tag based
      placement, if it is enabled.
    </description>
    <name>yarn.resourcemanager.application-tag-based-placement.username.whitelist</name>
    <value></value>
  </property>

  <property>
    <description>How long to keep aggregation logs before deleting them.  -1 disables. 
    Be careful set this too small and you will spam the name node.</description>
    <name>yarn.log-aggregation.retain-seconds</name>
    <value>-1</value>
  </property> 
  
  <property>
    <description>How long to wait between aggregated log retention checks.
    If set to 0 or a negative value then the value is computed as one-tenth
    of the aggregated log retention time. Be careful set this too small and
    you will spam the name node.</description>
    <name>yarn.log-aggregation.retain-check-interval-seconds</name>
    <value>-1</value>
  </property>

  <property>
    <description>The log files created under NM Local Directories
    will be logged if it exceeds the configured bytes. This
    only takes effect if log4j level is at least Debug.</description>
    <name>yarn.log-aggregation.debug.filesize</name>
    <value>104857600</value>
  </property>

  <property>
    <description>Specify which log file controllers we will support. The first
    file controller we add will be used to write the aggregated logs.
    This comma separated configuration will work with the configuration:
    yarn.log-aggregation.file-controller.%s.class which defines the supported
    file controller's class. By default, the TFile controller would be used.
    The user could override this configuration by adding more file controllers.
    To support back-ward compatibility, make sure that we always
    add TFile file controller.</description>
    <name>yarn.log-aggregation.file-formats</name>
    <value>TFile</value>
  </property>

  <property>
    <description>Class that supports TFile read and write operations.</description>
    <name>yarn.log-aggregation.file-controller.TFile.class</name>
    <value>org.apache.hadoop.yarn.logaggregation.filecontroller.tfile.LogAggregationTFileController</value>
  </property>

  <property>
    <description>
    How long for ResourceManager to wait for NodeManager to report its
    log aggregation status. If waiting time of which the log aggregation
    status is reported from NodeManager exceeds the configured value, RM
    will report log aggregation status for this NodeManager as TIME_OUT.
    This configuration will be used in NodeManager as well to decide
    whether and when to delete the cached log aggregation status.
    </description>
    <name>yarn.log-aggregation-status.time-out.ms</name>
    <value>600000</value>
  </property>

  <property>
    <description>Time in seconds to retain user logs. Only applicable if
    log aggregation is disabled
    </description>
    <name>yarn.nodemanager.log.retain-seconds</name>
    <value>10800</value>
  </property>

  <property>
    <description>Where to aggregate logs to.</description>
    <name>yarn.nodemanager.remote-app-log-dir</name>
    <value>/tmp/logs</value>
  </property>
  <property>
    <description>The remote log dir will be created at 
      {yarn.nodemanager.remote-app-log-dir}/${user}/{thisParam}
    </description>
    <name>yarn.nodemanager.remote-app-log-dir-suffix</name>
    <value>logs</value>
  </property>

  <property>
    <description>If set to true, the older application log directory
    will be considered while fetching application logs.
    </description>
    <name>yarn.nodemanager.remote-app-log-dir-include-older</name>
    <value>true</value>
  </property>

  <property>
    <description>If the NodeManager creates the remote-app-log-dir folder,
    it will be created with this groupname.
    </description>
    <name>yarn.nodemanager.remote-app-log-dir.groupname</name>
    <value></value>
  </property>

  <property>
    <description>Generate additional logs about container launches.
    Currently, this creates a copy of the launch script and lists the
    directory contents of the container work dir. When listing directory
    contents, we follow symlinks to a max-depth of 5(including symlinks
    which point to outside the container work dir) which may lead to a
    slowness in launching containers.
    </description>
    <name>yarn.nodemanager.log-container-debug-info.enabled</name>
    <value>true</value>
  </property>

  <property>
    <description>Amount of physical memory, in MB, that can be allocated 
    for containers. If set to -1 and
    yarn.nodemanager.resource.detect-hardware-capabilities is true, it is
    automatically calculated(in case of Windows and Linux).
    In other cases, the default is 8192MB.
    </description>
    <name>yarn.nodemanager.resource.memory-mb</name>
    <value>-1</value>
  </property>

  <property>
    <description>Amount of physical memory, in MB, that is reserved
    for non-YARN processes. This configuration is only used if
    yarn.nodemanager.resource.detect-hardware-capabilities is set
    to true and yarn.nodemanager.resource.memory-mb is -1. If set
    to -1, this amount is calculated as
    20% of (system memory - 2*HADOOP_HEAPSIZE)
    </description>
    <name>yarn.nodemanager.resource.system-reserved-memory-mb</name>
    <value>-1</value>
  </property>

  <property>
    <description>Whether YARN CGroups memory tracking is enabled.</description>
    <name>yarn.nodemanager.resource.memory.enabled</name>
    <value>false</value>
  </property>

  <property>
    <description>Whether YARN CGroups strict memory enforcement is enabled.
    </description>
    <name>yarn.nodemanager.resource.memory.enforced</name>
    <value>true</value>
  </property>

  <property>
    <description>If memory limit is enforced, this the percentage of soft limit
      compared to the memory assigned to the container. If there is memory
      pressure container memory usage will be pushed back to its soft limit
      by swapping out memory.
    </description>
    <name>yarn.nodemanager.resource.memory.cgroups.soft-limit-percentage</name>
    <value>90.0</value>
  </property>

  <property>
    <description>Container swappiness is the likelihood a page will be swapped
      out compared to be kept in memory. Value is between 0-100.
    </description>
    <name>yarn.nodemanager.resource.memory.cgroups.swappiness</name>
    <value>0</value>
  </property>

  <property>
    <description>Whether physical memory limits will be enforced for
    containers.</description>
    <name>yarn.nodemanager.pmem-check-enabled</name>
    <value>true</value>
  </property>

  <property>
    <description>Whether virtual memory limits will be enforced for
    containers.</description>
    <name>yarn.nodemanager.vmem-check-enabled</name>
    <value>true</value>
  </property>

  <property>
    <description>Ratio between virtual memory to physical memory when
    setting memory limits for containers. Container allocations are
    expressed in terms of physical memory, and virtual memory usage
    is allowed to exceed this allocation by this ratio.
    </description>
    <name>yarn.nodemanager.vmem-pmem-ratio</name>
    <value>2.1</value>
  </property>

  <property>
    <description>Number of vcores that can be allocated
    for containers. This is used by the RM scheduler when allocating
    resources for containers. This is not used to limit the number of
    CPUs used by YARN containers. If it is set to -1 and
    yarn.nodemanager.resource.detect-hardware-capabilities is true, it is
    automatically determined from the hardware in case of Windows and Linux.
    In other cases, number of vcores is 8 by default.</description>
    <name>yarn.nodemanager.resource.cpu-vcores</name>
    <value>-1</value>
  </property>

  <property>
    <description>Flag to determine if logical processors(such as
    hyperthreads) should be counted as cores. Only applicable on Linux
    when yarn.nodemanager.resource.cpu-vcores is set to -1 and
    yarn.nodemanager.resource.detect-hardware-capabilities is true.
    </description>
    <name>yarn.nodemanager.resource.count-logical-processors-as-cores</name>
    <value>false</value>
  </property>

  <property>
    <description>Multiplier to determine how to convert phyiscal cores to
    vcores. This value is used if yarn.nodemanager.resource.cpu-vcores
    is set to -1(which implies auto-calculate vcores) and
    yarn.nodemanager.resource.detect-hardware-capabilities is set to true. The
    number of vcores will be calculated as
    number of CPUs * multiplier.
    </description>
    <name>yarn.nodemanager.resource.pcores-vcores-multiplier</name>
    <value>1.0</value>
  </property>

  <property>
    <description>
    Thread pool size for LogAggregationService in Node Manager.
    </description>
    <name>yarn.nodemanager.logaggregation.threadpool-size-max</name>
    <value>100</value>
  </property>

  <property>
    <description>Percentage of CPU that can be allocated
    for containers. This setting allows users to limit the amount of
    CPU that YARN containers use. Currently functional only
    on Linux using cgroups. The default is to use 100% of CPU.
    </description>
    <name>yarn.nodemanager.resource.percentage-physical-cpu-limit</name>
    <value>100</value>
  </property>

  <property>
    <description>Enable auto-detection of node capabilities such as
    memory and CPU.
    </description>
    <name>yarn.nodemanager.resource.detect-hardware-capabilities</name>
    <value>false</value>
  </property>

  <property>
    <description>NM Webapp address.</description>
    <name>yarn.nodemanager.webapp.address</name>
    <value>${yarn.nodemanager.hostname}:8042</value>
  </property>

  <property>
    <description>
    The https adddress of the NM web application.
    </description>
    <name>yarn.nodemanager.webapp.https.address</name>
    <value>0.0.0.0:8044</value>
  </property>

  <property>
    <description>
    The Kerberos keytab file to be used for spnego filter for the NM web
    interface.
    </description>
    <name>yarn.nodemanager.webapp.spnego-keytab-file</name>
    <value></value>
  </property>

  <property>
    <description>
    The Kerberos principal to be used for spnego filter for the NM web
    interface.
    </description>
    <name>yarn.nodemanager.webapp.spnego-principal</name>
    <value></value>
  </property>

  <property>
    <description>How often to monitor the node and the containers.
    If 0 or negative, monitoring is disabled.</description>
    <name>yarn.nodemanager.resource-monitor.interval-ms</name>
    <value>3000</value>
  </property>

  <property>
    <description>Class that calculates current resource utilization.</description>
    <name>yarn.nodemanager.resource-calculator.class</name>
  </property>

  <property>
    <description>Enable container monitor</description>
    <name>yarn.nodemanager.container-monitor.enabled</name>
    <value>true</value>
  </property>

  <property>
    <description>How often to monitor containers. If not set, the value for
    yarn.nodemanager.resource-monitor.interval-ms will be used.
    If 0 or negative, container monitoring is disabled.</description>
    <name>yarn.nodemanager.container-monitor.interval-ms</name>
  </property>

  <property>
    <description>Flag to enable the container log monitor which enforces
      container log directory size limits.</description>
    <name>yarn.nodemanager.container-log-monitor.enable</name>
    <value>false</value>
  </property>

  <property>
    <description>How often to check the usage of a container's log directories
      in milliseconds</description>
    <name>yarn.nodemanager.container-log-monitor.interval-ms</name>
    <value>60000</value>
  </property>

  <property>
    <description>The disk space limit, in bytes, for a single
      container log directory</description>
    <name>yarn.nodemanager.container-log-monitor.dir-size-limit-bytes</name>
    <value>1000000000</value>
  </property>

  <property>
    <description>The disk space limit, in bytes, for all of a container's
      logs</description>
    <name>yarn.nodemanager.container-log-monitor.total-size-limit-bytes</name>
    <value>10000000000</value>
  </property>

  <property>
    <description>Class that calculates containers current resource utilization.
    If not set, the value for yarn.nodemanager.resource-calculator.class will
    be used.</description>
    <name>yarn.nodemanager.container-monitor.resource-calculator.class</name>
  </property>

  <property>
    <description>The nodemanager health check scripts to run.</description>
    <name>yarn.nodemanager.health-checker.scripts</name>
    <value>script</value>
  </property>

  <property>
    <description>Health check script time out period.</description>
    <name>yarn.nodemanager.health-checker.timeout-ms</name>
    <value>1200000</value>
  </property>

  <property>
    <description>Whether or not to run the node health script
    before the NM starts up.</description>
    <name>yarn.nodemanager.health-checker.run-before-startup</name>
    <value>false</value>
  </property>

  <property>
    <description>Frequency of running node health scripts.</description>
    <name>yarn.nodemanager.health-checker.interval-ms</name>
    <value>600000</value>
  </property>

  <property>
    <description>Frequency of running disk health checker code.</description>
    <name>yarn.nodemanager.disk-health-checker.interval-ms</name>
    <value>120000</value>
  </property>

  <property>
    <description>The minimum fraction of number of disks to be healthy for the
    nodemanager to launch new containers. This correspond to both
    yarn.nodemanager.local-dirs and yarn.nodemanager.log-dirs. i.e. If there
    are less number of healthy local-dirs (or log-dirs) available, then
    new containers will not be launched on this node.</description>
    <name>yarn.nodemanager.disk-health-checker.min-healthy-disks</name>
    <value>0.25</value>
  </property>

  <property>
    <description>Enable/Disable the disk utilisation percentage
      threshold for disk health checker.</description>
    <name>yarn.nodemanager.disk-health-checker.disk-utilization-threshold.enabled</name>
    <value>true</value>
  </property>

  <property>
    <description> Enable/Disable the minimum disk free
      space threshold for disk health checker.</description>
    <name>yarn.nodemanager.disk-health-checker.disk-free-space-threshold.enabled</name>
    <value>true</value>
  </property>

  <property>
    <description>The maximum percentage of disk space utilization allowed after 
    which a disk is marked as bad. Values can range from 0.0 to 100.0. 
    If the value is greater than or equal to 100, the nodemanager will check 
    for full disk. This applies to yarn.nodemanager.local-dirs and
    yarn.nodemanager.log-dirs when
      yarn.nodemanager.disk-health-checker.disk-utilization-threshold.enabled is true.</description>
    <name>yarn.nodemanager.disk-health-checker.max-disk-utilization-per-disk-percentage</name>
    <value>90.0</value>
  </property>

  <property>
    <description>The low threshold percentage of disk space used when a bad disk is
    marked as good. Values can range from 0.0 to 100.0. This applies to
    yarn.nodemanager.local-dirs and yarn.nodemanager.log-dirs.
    Note that if its value is more than yarn.nodemanager.disk-health-checker.
    max-disk-utilization-per-disk-percentage or not set, it will be set to the same value as
    yarn.nodemanager.disk-health-checker.max-disk-utilization-per-disk-percentage.</description>
    <name>yarn.nodemanager.disk-health-checker.disk-utilization-watermark-low-per-disk-percentage</name>
    <value></value>
  </property>

  <property>
    <description>The minimum space in megabytes that must be available on a disk for
    it to be used. If space on a disk falls below this threshold, it will be marked
    as bad. This applies to yarn.nodemanager.local-dirs and
    yarn.nodemanager.log-dirs when
      yarn.nodemanager.disk-health-checker.disk-free-space-threshold.enabled is true.</description>
    <name>yarn.nodemanager.disk-health-checker.min-free-space-per-disk-mb</name>
    <value>0</value>
  </property>

  <property>
    <description>The minimum space in megabytes that must be available on a bad
    disk for it to be marked as good.  This value should not be less
    than yarn.nodemanager.disk-health-checker.min-free-space-per-disk-mb.
    If it is less than yarn.nodemanager.disk-health-checker.min-free-space-per-disk-mb,
    or it is not set, it will be set to the
    same value as yarn.nodemanager.disk-health-checker.min-free-space-per-disk-mb.
    This applies to yarn.nodemanager.local-dirs and yarn.nodemanager.log-dirs.</description>
    <name>yarn.nodemanager.disk-health-checker.min-free-space-per-disk-watermark-high-mb</name>
    <value>0</value>
  </property>

  <property>
    <description>The path to the Linux container executor.</description>
    <name>yarn.nodemanager.linux-container-executor.path</name>
  </property>

  <property>
    <description>The class which should help the LCE handle resources.</description>
    <name>yarn.nodemanager.linux-container-executor.resources-handler.class</name>
    <value>org.apache.hadoop.yarn.server.nodemanager.util.DefaultLCEResourcesHandler</value>
    <!-- <value>org.apache.hadoop.yarn.server.nodemanager.util.CgroupsLCEResourcesHandler</value> -->
  </property>

  <property>
    <description>The cgroups hierarchy under which to place YARN proccesses (cannot contain commas).
    If yarn.nodemanager.linux-container-executor.cgroups.mount is false
    (that is, if cgroups have been pre-configured) and the YARN user has write
    access to the parent directory, then the directory will be created.
    If the directory already exists, the administrator has to give YARN
    write permissions to it recursively.
    This property only applies when the LCE resources handler is set to
    CgroupsLCEResourcesHandler.</description>
    <name>yarn.nodemanager.linux-container-executor.cgroups.hierarchy</name>
    <value>/hadoop-yarn</value>
  </property>

  <property>
    <description>Whether the LCE should attempt to mount cgroups if not found.
    This property only applies when the LCE resources handler is set to
    CgroupsLCEResourcesHandler.
    </description>
    <name>yarn.nodemanager.linux-container-executor.cgroups.mount</name>
    <value>false</value>
  </property>

  <property>
    <description>This property sets the path from which YARN will read the
    CGroups configuration. YARN has built-in functionality to discover the
    system CGroup mount paths, so use this property only if YARN's automatic
    mount path discovery does not work.

    The path specified by this property must exist before the NodeManager is
    launched.
    If yarn.nodemanager.linux-container-executor.cgroups.mount is set to true,
    YARN will first try to mount the CGroups at the specified path before
    reading them.
    If yarn.nodemanager.linux-container-executor.cgroups.mount is set to
    false, YARN will read the CGroups at the specified path.
    If this property is empty, YARN tries to detect the CGroups location.

    Please refer to NodeManagerCgroups.html in the documentation for further
    details.
    This property only applies when the LCE resources handler is set to
    CgroupsLCEResourcesHandler.
    </description>
    <name>yarn.nodemanager.linux-container-executor.cgroups.mount-path</name>
  </property>

  <property>
    <description>Delay in ms between attempts to remove linux cgroup</description>
    <name>yarn.nodemanager.linux-container-executor.cgroups.delete-delay-ms</name>
    <value>20</value>
  </property>

  <property>
    <description>This determines which of the two modes that LCE should use on
      a non-secure cluster.  If this value is set to true, then all containers
      will be launched as the user specified in
      yarn.nodemanager.linux-container-executor.nonsecure-mode.local-user.  If
      this value is set to false, then containers will run as the user who
      submitted the application.</description>
    <name>yarn.nodemanager.linux-container-executor.nonsecure-mode.limit-users</name>
    <value>true</value>
  </property>

  <property>
    <description>The UNIX user that containers will run as when
      Linux-container-executor is used in nonsecure mode (a use case for this
      is using cgroups) if the
      yarn.nodemanager.linux-container-executor.nonsecure-mode.limit-users is
      set to true.</description>
    <name>yarn.nodemanager.linux-container-executor.nonsecure-mode.local-user</name>
    <value>nobody</value>
  </property>

  <property>
    <description>The allowed pattern for UNIX user names enforced by
    Linux-container-executor when used in nonsecure mode (use case for this
    is using cgroups). The default value is taken from /usr/sbin/adduser</description>
    <name>yarn.nodemanager.linux-container-executor.nonsecure-mode.user-pattern</name>
    <value>^[_.A-Za-z0-9][-@_.A-Za-z0-9]{0,255}?[$]?$</value>
  </property>

  <property>
    <description>This flag determines whether apps should run with strict resource limits
    or be allowed to consume spare resources if they need them. For example, turning the
    flag on will restrict apps to use only their share of CPU, even if the node has spare
    CPU cycles. The default value is false i.e. use available resources. Please note that
    turning this flag on may reduce job throughput on the cluster. This setting does
    not apply to other subsystems like memory.</description>
    <name>yarn.nodemanager.linux-container-executor.cgroups.strict-resource-usage</name>
    <value>false</value>
  </property>

  <property>
    <description>Comma separated list of runtimes that are allowed when using
    LinuxContainerExecutor. The allowed values are default, docker, runc, and
    javasandbox.</description>
    <name>yarn.nodemanager.runtime.linux.allowed-runtimes</name>
    <value>default</value>
  </property>

  <property>
    <description>Default container runtime to use.</description>
    <name>yarn.nodemanager.runtime.linux.type</name>
    <value></value>
  </property>

  <property>
    <description>This configuration setting determines the capabilities
      assigned to docker containers when they are launched. While these may not
      be case-sensitive from a docker perspective, it is best to keep these
      uppercase. To run without any capabilities, set this value to
      "none" or "NONE"</description>
    <name>yarn.nodemanager.runtime.linux.docker.capabilities</name>
    <value>CHOWN,DAC_OVERRIDE,FSETID,FOWNER,MKNOD,NET_RAW,SETGID,SETUID,SETFCAP,SETPCAP,NET_BIND_SERVICE,SYS_CHROOT,KILL,AUDIT_WRITE</value>
  </property>

  <property>
    <description>Default docker image to be used when the docker runtime is
    selected.</description>
    <name>yarn.nodemanager.runtime.linux.docker.image-name</name>
    <value></value>
  </property>

  <property>
    <description>Default option to decide whether to pull the latest image
      or not.</description>
    <name>yarn.nodemanager.runtime.linux.docker.image-update</name>
    <value>false</value>
  </property>

  <property>
    <description>This configuration setting determines if privileged docker
      containers are allowed on this cluster. Privileged containers are granted
      the complete set of capabilities and are not subject to the limitations
      imposed by the device cgroup controller. In other words, privileged
      containers can do almost everything that the host can do. Use with
      extreme care.</description>
    <name>yarn.nodemanager.runtime.linux.docker.privileged-containers.allowed</name>
    <value>false</value>
  </property>

  <property>
    <description>This configuration setting determines who is allowed to run
      privileged docker containers on this cluster. Use with extreme care.
    </description>
    <name>yarn.nodemanager.runtime.linux.docker.privileged-containers.acl</name>
    <value></value>
  </property>

  <property>
    <description>The set of networks allowed when launching containers using the
      DockerContainerRuntime.</description>
    <name>yarn.nodemanager.runtime.linux.docker.allowed-container-networks</name>
    <value>host,none,bridge</value>
  </property>

  <property>
    <description>The network used when launching containers using the
      DockerContainerRuntime when no network is specified in the request
      . This network must be one of the (configurable) set of allowed container
      networks.</description>
    <name>yarn.nodemanager.runtime.linux.docker.default-container-network</name>
    <value>host</value>
  </property>

  <property>
    <description>The set of runtimes allowed when launching containers using the
      DockerContainerRuntime.</description>
    <name>yarn.nodemanager.runtime.linux.docker.allowed-container-runtimes</name>
    <value>runc</value>
  </property>

  <property>
    <description>This configuration setting determines whether the host's PID
      namespace is allowed for docker containers on this cluster.
      Use with care.</description>
    <name>yarn.nodemanager.runtime.linux.docker.host-pid-namespace.allowed</name>
    <value>false</value>
  </property>

  <property>
    <description>Property to enable docker user remapping</description>
    <name>yarn.nodemanager.runtime.linux.docker.enable-userremapping.allowed</name>
    <value>true</value>
  </property>

  <property>
    <description>lower limit for acceptable uids of user remapped user</description>
    <name>yarn.nodemanager.runtime.linux.docker.userremapping-uid-threshold</name>
    <value>1</value>
  </property>


  <property>
    <description>lower limit for acceptable gids of user remapped user</description>
    <name>yarn.nodemanager.runtime.linux.docker.userremapping-gid-threshold</name>
    <value>1</value>
  </property>

  <property>
    <description>Whether or not users are allowed to request that Docker
      containers honor the debug deletion delay. This is useful for
      troubleshooting Docker container related launch failures.</description>
    <name>yarn.nodemanager.runtime.linux.docker.delayed-removal.allowed</name>
    <value>false</value>
  </property>

  <property>
    <description>A configurable value to pass to the Docker Stop command. This value
      defines the number of seconds between the docker stop command sending
      a SIGTERM and a SIGKILL.</description>
    <name>yarn.nodemanager.runtime.linux.docker.stop.grace-period</name>
    <value>10</value>
  </property>

  <property>
    <description>The default list of read-only mounts to be bind-mounted
      into all Docker containers that use DockerContainerRuntime.</description>
    <name>yarn.nodemanager.runtime.linux.docker.default-ro-mounts</name>
    <value></value>
  </property>

  <property>
    <description>The default list of read-write mounts to be bind-mounted
      into all Docker containers that use DockerContainerRuntime.</description>
    <name>yarn.nodemanager.runtime.linux.docker.default-rw-mounts</name>
    <value></value>
  </property>

  <property>
    <description>The default list of tmpfs mounts to be mounted into all Docker
      containers that use DockerContainerRuntime.</description>
    <name>yarn.nodemanager.runtime.linux.docker.default-tmpfs-mounts</name>
    <value></value>
  </property>

  <property>
    <description>The runC image tag to manifest plugin
      class to be used.</description>
    <name>yarn.nodemanager.runtime.linux.runc.image-tag-to-manifest-plugin</name>
    <value>org.apache.hadoop.yarn.server.nodemanager.containermanager.linux.runtime.runc.ImageTagToManifestPlugin</value>
  </property>

  <property>
    <description>The runC manifest to resources plugin class to
      be used.</description>
    <name>yarn.nodemanager.runtime.linux.runc.manifest-to-resources-plugin</name>
    <value>org.apache.hadoop.yarn.server.nodemanager.containermanager.linux.runtime.runc.HdfsManifestToResourcesPlugin</value>
  </property>

  <property>
    <description>The HDFS location under which the oci image manifests, layers,
      and configs directories exist.</description>
    <name>yarn.nodemanager.runtime.linux.runc.image-toplevel-dir</name>
    <value>/runc-root</value>
  </property>

  <property>
    <description>Target count of layer mounts that we should keep on disk
      at one time.</description>
    <name>yarn.nodemanager.runtime.linux.runc.layer-mounts-to-keep</name>
    <value>100</value>
  </property>

  <property>
    <description>The interval in seconds between executions of
      reaping layer mounts.</description>
    <name>yarn.nodemanager.runtime.linux.runc.layer-mounts-interval-secs</name>
    <value>600</value>
  </property>

  <property>
    <description>Image to be used if no other image is specified.</description>
    <name>yarn.nodemanager.runtime.linux.runc.image-name</name>
    <value></value>
  </property>

  <property>
    <description>Allow or disallow privileged containers.</description>
    <name>yarn.nodemanager.runtime.linux.runc.privileged-containers.allowed</name>
    <value>false</value>
  </property>

  <property>
    <description>The set of networks allowed when launching containers
      using the RuncContainerRuntime.</description>
    <name>yarn.nodemanager.runtime.linux.runc.allowed-container-networks</name>
    <value>host,none,bridge</value>
  </property>

  <property>
    <description>The set of runtimes allowed when launching containers
      using the RuncContainerRuntime.</description>
    <name>yarn.nodemanager.runtime.linux.runc.allowed-container-runtimes</name>
    <value>runc</value>
  </property>

  <property>
    <description>ACL list for users allowed to run privileged
      containers.</description>
    <name>yarn.nodemanager.runtime.linux.runc.privileged-containers.acl</name>
    <value></value>
  </property>

  <property>
    <description>Allow host pid namespace for runC containers.
      Use with care.</description>
    <name>yarn.nodemanager.runtime.linux.runc.host-pid-namespace.allowed</name>
    <value>false</value>
  </property>

  <property>
    <description>The default list of read-only mounts to be bind-mounted
      into all runC containers that use RuncContainerRuntime.</description>
    <name>yarn.nodemanager.runtime.linux.runc.default-ro-mounts</name>
    <value></value>
  </property>

  <property>
    <description>The default list of read-write mounts to be bind-mounted
      into all runC containers that use RuncContainerRuntime.</description>
    <name>yarn.nodemanager.runtime.linux.runc.default-rw-mounts</name>
    <value></value>
  </property>

  <property>
    <description>Path to the seccomp profile to use with runC
      containers</description>
    <name>yarn.nodemanager.runtime.linux.runc.seccomp-profile</name>
    <value></value>
  </property>

  <property>
    <description>The HDFS location where the runC image tag to hash
      file exists.</description>
    <name>yarn.nodemanager.runtime.linux.runc.image-tag-to-manifest-plugin.hdfs-hash-file</name>
    <value>/runc-root/image-tag-to-hash</value>
  </property>

  <property>
    <description>The local file system location where the runC image tag
      to hash file exists.</description>
    <name>yarn.nodemanager.runtime.linux.runc.image-tag-to-manifest-plugin.local-hash-file</name>
    <value></value>
  </property>

  <property>
    <description>The interval in seconds between refreshing the hdfs image tag
      to hash cache.</description>
    <name>yarn.nodemanager.runtime.linux.runc.image-tag-to-manifest-plugin.cache-refresh-interval-secs</name>
    <value>60</value>
  </property>

  <property>
    <description>The number of manifests to cache in the image tag
      to hash cache.</description>
    <name>yarn.nodemanager.runtime.linux.runc.image-tag-to-manifest-plugin.num-manifests-to-cache</name>
    <value>10</value>
  </property>

  <property>
    <description>The timeout value in seconds for the values in
      the stat cache.</description>
    <name>yarn.nodemanager.runtime.linux.runc.hdfs-manifest-to-resources-plugin.stat-cache-timeout-interval-secs</name>
    <value>360</value>
  </property>

  <property>
    <description>The size of the stat cache which stores stats of the
      layers and config.</description>
    <name>yarn.nodemanager.runtime.linux.runc.hdfs-manifest-to-resources-plugin.stat-cache-size</name>
    <value>500</value>
  </property>

  <property>
    <description>The mode in which the Java Container Sandbox should run detailed by
      the JavaSandboxLinuxContainerRuntime.</description>
    <name>yarn.nodemanager.runtime.linux.sandbox-mode</name>
    <value>disabled</value>
  </property>

  <property>
    <description>Permissions for application local directories.</description>
    <name>yarn.nodemanager.runtime.linux.sandbox-mode.local-dirs.permissions</name>
    <value>read</value>
  </property>

  <property>
    <description>Location for non-default java policy file.</description>
    <name>yarn.nodemanager.runtime.linux.sandbox-mode.policy</name>
    <value></value>
  </property>

  <property>
    <description>The group which will run by default without the java security
      manager.</description>
    <name>yarn.nodemanager.runtime.linux.sandbox-mode.whitelist-group</name>
    <value></value>
  </property>

  <property>
    <description>This flag determines whether memory limit will be set for the Windows Job
    Object of the containers launched by the default container executor.</description>
    <name>yarn.nodemanager.windows-container.memory-limit.enabled</name>
    <value>false</value>
  </property>

  <property>
    <description>This flag determines whether CPU limit will be set for the Windows Job
    Object of the containers launched by the default container executor.</description>
    <name>yarn.nodemanager.windows-container.cpu-limit.enabled</name>
    <value>false</value>
  </property>

  <property>
    <description>
    Interval of time the linux container executor should try cleaning up
    cgroups entry when cleaning up a container.
    </description>
    <name>yarn.nodemanager.linux-container-executor.cgroups.delete-timeout-ms</name>
    <value>1000</value>
  </property>

  <property>
    <description>T-file compression types used to compress aggregated logs.</description>
    <name>yarn.nodemanager.log-aggregation.compression-type</name>
    <value>none</value>
  </property>

  <property>
    <description>The kerberos principal for the node manager.</description>
    <name>yarn.nodemanager.principal</name>
    <value></value>
  </property>

  <property>
    <description>A comma separated list of services where service name should only
      contain a-zA-Z0-9_ and can not start with numbers</description>
    <name>yarn.nodemanager.aux-services</name>
    <value></value>
    <!--<value>mapreduce_shuffle</value>-->
  </property>

  <property>
    <description>Boolean indicating whether loading aux services from a manifest
      is enabled. If enabled, aux services may be dynamically modified through
      reloading the manifest via filesystem changes or a REST API. When
      enabled, aux services configuration properties unrelated to the manifest
      will be ignored.</description>
    <name>yarn.nodemanager.aux-services.manifest.enabled</name>
    <value>false</value>
  </property>

  <property>
    <description>A file containing auxiliary service specifications.</description>
    <name>yarn.nodemanager.aux-services.manifest</name>
    <value></value>
  </property>

  <property>
    <description>Length of time in ms to wait between reloading aux services
      manifest. If 0 or less, manifest will not be reloaded.</description>
    <name>yarn.nodemanager.aux-services.manifest.reload-ms</name>
    <value>0</value>
  </property>

  <property>
    <description>No. of ms to wait between sending a SIGTERM and SIGKILL to a container</description>
    <name>yarn.nodemanager.sleep-delay-before-sigkill.ms</name>
    <value>250</value>
  </property>

  <property>
    <description>Max time to wait for a process to come up when trying to cleanup a container</description>
    <name>yarn.nodemanager.process-kill-wait.ms</name>
    <value>5000</value>
  </property>

  <property>
    <description>The minimum allowed version of a resourcemanager that a nodemanager will connect to.  
      The valid values are NONE (no version checking), EqualToNM (the resourcemanager's version is 
      equal to or greater than the NM version), or a Version String.</description>
    <name>yarn.nodemanager.resourcemanager.minimum.version</name>
    <value>NONE</value>
  </property>

  <property>
    <description>Maximum size of contain's diagnostics to keep for relaunching
      container case.</description>
    <name>yarn.nodemanager.container-diagnostics-maximum-size</name>
    <value>10000</value>
  </property>

  <property>
    <description>Minimum container restart interval in milliseconds.</description>
    <name>yarn.nodemanager.container-retry-minimum-interval-ms</name>
    <value>1000</value>
  </property>

  <property>
    <description>Max number of threads in NMClientAsync to process container
    management events</description>
    <name>yarn.client.nodemanager-client-async.thread-pool-max-size</name>
    <value>500</value>
  </property>

  <property>
    <description>Max time to wait to establish a connection to NM</description>
    <name>yarn.client.nodemanager-connect.max-wait-ms</name>
    <value>180000</value>
  </property>

  <property>
    <description>Time interval between each attempt to connect to NM</description>
    <name>yarn.client.nodemanager-connect.retry-interval-ms</name>
    <value>10000</value>
  </property>

  <property>
    <description>
      Max time to wait for NM to connect to RM.
      When not set, proxy will fall back to use value of
      yarn.resourcemanager.connect.max-wait.ms.
    </description>
    <name>yarn.nodemanager.resourcemanager.connect.max-wait.ms</name>
    <value></value>
  </property>

  <property>
    <description>
      Time interval between each NM attempt to connect to RM.
      When not set, proxy will fall back to use value of
      yarn.resourcemanager.connect.retry-interval.ms.
    </description>
    <name>yarn.nodemanager.resourcemanager.connect.retry-interval.ms</name>
    <value></value>
  </property>

  <property>
    <description>
      Maximum number of proxy connections to cache for node managers. If set
      to a value greater than zero then the cache is enabled and the NMClient
      and MRAppMaster will cache the specified number of node manager proxies.
      There will be at max one proxy per node manager. Ex. configuring it to a
      value of 5 will make sure that client will at max have 5 proxies cached
      with 5 different node managers. These connections for these proxies will
      be timed out if idle for more than the system wide idle timeout period.
      Note that this could cause issues on large clusters as many connections
      could linger simultaneously and lead to a large number of connection
      threads. The token used for authentication will be used only at
      connection creation time. If a new token is received then the earlier
      connection should be closed in order to use the new token. This and
      (yarn.client.nodemanager-client-async.thread-pool-max-size) are related
      and should be in sync (no need for them to be equal).
      If the value of this property is zero then the connection cache is
      disabled and connections will use a zero idle timeout to prevent too
      many connection threads on large clusters.
    </description>
    <name>yarn.client.max-cached-nodemanagers-proxies</name>
    <value>0</value>
  </property>
  
  <property>
    <description>Enable the node manager to recover after starting</description>
    <name>yarn.nodemanager.recovery.enabled</name>
    <value>false</value>
  </property>

  <property>
    <description>The local filesystem directory in which the node manager will
    store state when recovery is enabled.</description>
    <name>yarn.nodemanager.recovery.dir</name>
    <value>${hadoop.tmp.dir}/yarn-nm-recovery</value>
  </property>

  <property>
    <description>The time in seconds between full compactions of the NM state
    database. Setting the interval to zero disables the full compaction
    cycles.</description>
    <name>yarn.nodemanager.recovery.compaction-interval-secs</name>
    <value>3600</value>
  </property>

  <property>
    <description>Whether the nodemanager is running under supervision. A
      nodemanager that supports recovery and is running under supervision
      will not try to cleanup containers as it exits with the assumption
      it will be immediately be restarted and recover containers.</description>
    <name>yarn.nodemanager.recovery.supervised</name>
    <value>false</value>
  </property>

  <property>
    <description>
    Adjustment to the container OS scheduling priority.  In Linux, passed
    directly to the nice command. If unspecified then containers are launched
    without any explicit OS priority.
    </description>
    <name>yarn.nodemanager.container-executor.os.sched.priority.adjustment</name>
  </property>

  <property>
    <description>
    Flag to enable container metrics
    </description>
    <name>yarn.nodemanager.container-metrics.enable</name>
    <value>true</value>
  </property>

  <property>
    <description>
    Container metrics flush period in ms.  Set to -1 for flush on completion.
    </description>
    <name>yarn.nodemanager.container-metrics.period-ms</name>
    <value>-1</value>
  </property>

  <property>
    <description>
    The delay time ms to unregister container metrics after completion.
    </description>
    <name>yarn.nodemanager.container-metrics.unregister-delay-ms</name>
    <value>10000</value>
  </property>

  <property>
    <description>
    Class used to calculate current container resource utilization.
    </description>
    <name>yarn.nodemanager.container-monitor.process-tree.class</name>
    <value></value>
  </property>

  <property>
    <description>
    Flag to enable NodeManager disk health checker
    </description>
    <name>yarn.nodemanager.disk-health-checker.enable</name>
    <value>true</value>
  </property>

  <property>
    <description>
    Number of threads to use in NM log cleanup.  Used when log aggregation
    is disabled.
    </description>
    <name>yarn.nodemanager.log.deletion-threads-count</name>
    <value>4</value>
  </property>

  <property>
    <description>
    The Windows group that the windows-container-executor should run as.
    </description>
    <name>yarn.nodemanager.windows-secure-container-executor.group</name>
    <value></value>
  </property>

  <!-- Map Reduce Configuration -->

  <property>
    <name>yarn.nodemanager.aux-services.mapreduce_shuffle.class</name>
    <value>org.apache.hadoop.mapred.ShuffleHandler</value>
  </property>

  <!-- WebAppProxy Configuration -->

  <property>
    <description>The kerberos principal for the proxy, if the proxy is not
    running as part of the RM.</description>
    <name>yarn.web-proxy.principal</name>
    <value/>
  </property>
  
  <property>
    <description>Keytab for WebAppProxy, if the proxy is not running as part of 
    the RM.</description>
    <name>yarn.web-proxy.keytab</name>
  </property>
  
  <property>
    <description>The address for the web proxy as HOST:PORT, if this is not
     given then the proxy will run as part of the RM</description>
     <name>yarn.web-proxy.address</name>
     <value/>
  </property>

  <property>
    <description>The actual address the web proxy will bind to. If this optional
     address is set, it overrides only the hostname portion of yarn.web-proxy.address.
     This is useful for making the web proxy server listen on all interfaces by setting
     it to 0.0.0.0 </description>
    <name>yarn.web-proxy.bind-host</name>
    <value/>
  </property>

  <!-- Applications' Configuration -->

  <property>
    <description>
      CLASSPATH for YARN applications. A comma-separated list
      of CLASSPATH entries. When this value is empty, the following default
      CLASSPATH for YARN applications would be used. 
      For Linux:
      $HADOOP_CONF_DIR,
      $HADOOP_COMMON_HOME/share/hadoop/common/*,
      $HADOOP_COMMON_HOME/share/hadoop/common/lib/*,
      $HADOOP_HDFS_HOME/share/hadoop/hdfs/*,
      $HADOOP_HDFS_HOME/share/hadoop/hdfs/lib/*,
      $HADOOP_YARN_HOME/share/hadoop/yarn/*,
      $HADOOP_YARN_HOME/share/hadoop/yarn/lib/*
      For Windows:
      %HADOOP_CONF_DIR%,
      %HADOOP_COMMON_HOME%/share/hadoop/common/*,
      %HADOOP_COMMON_HOME%/share/hadoop/common/lib/*,
      %HADOOP_HDFS_HOME%/share/hadoop/hdfs/*,
      %HADOOP_HDFS_HOME%/share/hadoop/hdfs/lib/*,
      %HADOOP_YARN_HOME%/share/hadoop/yarn/*,
      %HADOOP_YARN_HOME%/share/hadoop/yarn/lib/*
    </description>
    <name>yarn.application.classpath</name>
    <value></value>
  </property>

  <!-- Timeline Service Configuration -->

  <property>
    <description>Indicate what is the current version of the running
    timeline service. For example, if "yarn.timeline-service.version" is 1.5,
    and "yarn.timeline-service.enabled" is true, it means the cluster will and
    should bring up the timeline service v.1.5 (and nothing else).
    On the client side, if the client uses the same version of timeline service,
    it should succeed. If the client chooses to use a smaller version in spite of this,
    then depending on how robust the compatibility story is between versions,
    the results may vary.
    </description>
    <name>yarn.timeline-service.version</name>
    <value>1.0f</value>
  </property>

  <property>
    <description>
    In the server side it indicates whether timeline service is enabled or not.
    And in the client side, users can enable it to indicate whether client wants
    to use timeline service. If its enabled in the client side along with
    security, then yarn client tries to fetch the delegation tokens for the
    timeline server.
    </description>
    <name>yarn.timeline-service.enabled</name>
    <value>false</value>
  </property>

  <property>
    <description>The hostname of the timeline service web application.</description>
    <name>yarn.timeline-service.hostname</name>
    <value>0.0.0.0</value>
  </property>

  <property>
    <description>This is default address for the timeline server to start the
    RPC server.</description>
    <name>yarn.timeline-service.address</name>
    <value>${yarn.timeline-service.hostname}:10200</value>
  </property>

  <property>
    <description>The http address of the timeline service web application.</description>
    <name>yarn.timeline-service.webapp.address</name>
    <value>${yarn.timeline-service.hostname}:8188</value>
  </property>

  <property>
    <description>The https address of the timeline service web application.</description>
    <name>yarn.timeline-service.webapp.https.address</name>
    <value>${yarn.timeline-service.hostname}:8190</value>
  </property>

  <property>
    <description>
      The actual address the server will bind to. If this optional address is
      set, the RPC and webapp servers will bind to this address and the port specified in
      yarn.timeline-service.address and yarn.timeline-service.webapp.address, respectively.
      This is most useful for making the service listen to all interfaces by setting to
      0.0.0.0.
    </description>
    <name>yarn.timeline-service.bind-host</name>
    <value></value>
  </property>

  <property>
    <description>
      Defines the max number of applications could be fetched using REST API or
      application history protocol and shown in timeline server web ui.
    </description>
    <name>yarn.timeline-service.generic-application-history.max-applications</name>
    <value>10000</value>
  </property>

  <property>
    <description>Store class name for timeline store.</description>
    <name>yarn.timeline-service.store-class</name>
    <value>org.apache.hadoop.yarn.server.timeline.LeveldbTimelineStore</value>
  </property>

  <property>
    <description>Enable age off of timeline store data.</description>
    <name>yarn.timeline-service.ttl-enable</name>
    <value>true</value>
  </property>

  <property>
    <description>Time to live for timeline store data in milliseconds.</description>
    <name>yarn.timeline-service.ttl-ms</name>
    <value>604800000</value>
  </property>

  <property>
    <description>Store file name for leveldb timeline store.</description>
    <name>yarn.timeline-service.leveldb-timeline-store.path</name>
    <value>${hadoop.tmp.dir}/yarn/timeline</value>
  </property>

  <property>
    <description>Length of time to wait between deletion cycles of leveldb timeline store in milliseconds.</description>
    <name>yarn.timeline-service.leveldb-timeline-store.ttl-interval-ms</name>
    <value>300000</value>
  </property>

  <property>
    <description>Size of read cache for uncompressed blocks for leveldb timeline store in bytes.</description>
    <name>yarn.timeline-service.leveldb-timeline-store.read-cache-size</name>
    <value>104857600</value>
  </property>

  <property>
    <description>Size of cache for recently read entity start times for leveldb timeline store in number of entities.</description>
    <name>yarn.timeline-service.leveldb-timeline-store.start-time-read-cache-size</name>
    <value>10000</value>
  </property>

  <property>
    <description>Size of cache for recently written entity start times for leveldb timeline store in number of entities.</description>
    <name>yarn.timeline-service.leveldb-timeline-store.start-time-write-cache-size</name>
    <value>10000</value>
  </property>

  <property>
    <description>Handler thread count to serve the client RPC requests.</description>
    <name>yarn.timeline-service.handler-thread-count</name>
    <value>10</value>
  </property>

  <property>
    <name>yarn.timeline-service.http-authentication.type</name>
    <value>simple</value>
    <description>
      Defines authentication used for the timeline server HTTP endpoint.
      Supported values are: simple | kerberos | #AUTHENTICATION_HANDLER_CLASSNAME#
    </description>
  </property>

  <property>
    <name>yarn.timeline-service.http-authentication.simple.anonymous.allowed</name>
    <value>true</value>
    <description>
      Indicates if anonymous requests are allowed by the timeline server when using
      'simple' authentication.
    </description>
  </property>

  <property>
    <description>The Kerberos principal for the timeline server.</description>
    <name>yarn.timeline-service.principal</name>
    <value></value>
  </property>

  <property>
    <description>The Kerberos keytab for the timeline server.</description>
    <name>yarn.timeline-service.keytab</name>
    <value>/etc/krb5.keytab</value>
  </property>

  <property>
    <description>Comma separated list of UIs that will be hosted</description>
    <name>yarn.timeline-service.ui-names</name>
    <value></value>
  </property>

  <property>
    <description>
    Default maximum number of retries for timeline service client
    and value -1 means no limit.
    </description>
    <name>yarn.timeline-service.client.max-retries</name>
    <value>30</value>
  </property>

  <property>
    <description>Client policy for whether timeline operations are non-fatal.
    Should the failure to obtain a delegation token be considered an application
    failure (option = false),  or should the client attempt to continue to
    publish information without it (option=true)</description>
    <name>yarn.timeline-service.client.best-effort</name>
    <value>false</value>
  </property>

  <property>
    <description>
    Default retry time interval for timeline servive client.
    </description>
    <name>yarn.timeline-service.client.retry-interval-ms</name>
    <value>1000</value>
  </property>

  <property>
    <description>
    The time period for which timeline v2 client will wait for draining
    leftover entities after stop.
    </description>
    <name>yarn.timeline-service.client.drain-entities.timeout.ms</name>
    <value>2000</value>
  </property>

  <property>
    <description>Enable timeline server to recover state after starting. If
    true, then yarn.timeline-service.state-store-class must be specified.
    </description>
    <name>yarn.timeline-service.recovery.enabled</name>
    <value>false</value>
  </property>

  <property>
    <description>Store class name for timeline state store.</description>
    <name>yarn.timeline-service.state-store-class</name>
    <value>org.apache.hadoop.yarn.server.timeline.recovery.LeveldbTimelineStateStore</value>
  </property>

  <property>
    <description>Store file name for leveldb state store.</description>
    <name>yarn.timeline-service.leveldb-state-store.path</name>
    <value>${hadoop.tmp.dir}/yarn/timeline</value>
  </property>

  <!-- Timeline Service v1.5 Configuration -->
  <property>
    <name>yarn.timeline-service.entity-group-fs-store.cache-store-class</name>
    <value>org.apache.hadoop.yarn.server.timeline.MemoryTimelineStore</value>
    <description>Caching storage timeline server v1.5 is using. </description>
  </property>

  <property>
    <name>yarn.timeline-service.entity-group-fs-store.active-dir</name>
    <value>/tmp/entity-file-history/active</value>
    <description>HDFS path to store active application’s timeline data</description>
  </property>

  <property>
    <name>yarn.timeline-service.entity-group-fs-store.done-dir</name>
    <value>/tmp/entity-file-history/done/</value>
    <description>HDFS path to store done application’s timeline data</description>
  </property>

  <property>
    <name>yarn.timeline-service.entity-group-fs-store.group-id-plugin-classes</name>
    <value></value>
    <description>
      Plugins that can translate a timeline entity read request into
      a list of timeline entity group ids, separated by commas.
    </description>
  </property>

  <property>
    <name>yarn.timeline-service.entity-group-fs-store.group-id-plugin-classpath</name>
    <value></value>
    <description>
      Classpath for all plugins defined in
      yarn.timeline-service.entity-group-fs-store.group-id-plugin-classes.
    </description>
  </property>

   <property>
     <name>yarn.timeline-service.entity-group-fs-store.summary-store</name>
     <description>Summary storage for ATS v1.5</description>
     <value>org.apache.hadoop.yarn.server.timeline.LeveldbTimelineStore</value>
  </property>

  <property>
    <name>yarn.timeline-service.entity-group-fs-store.scan-interval-seconds</name>
    <description>
      Scan interval for ATS v1.5 entity group file system storage reader.This
      value controls how frequent the reader will scan the HDFS active directory
      for application status.
    </description>
    <value>60</value>
  </property>

  <property>
    <name>yarn.timeline-service.entity-group-fs-store.cleaner-interval-seconds</name>
    <description>
      Scan interval for ATS v1.5 entity group file system storage cleaner.This
      value controls how frequent the reader will scan the HDFS done directory
      for stale application data.
    </description>
    <value>3600</value>
  </property>

  <property>
    <name>yarn.timeline-service.entity-group-fs-store.retain-seconds</name>
    <description>
      How long the ATS v1.5 entity group file system storage will keep an
      application's data in the done directory.
    </description>
    <value>604800</value>
  </property>

  <property>
    <name>yarn.timeline-service.entity-group-fs-store.leveldb-cache-read-cache-size</name>
    <description>
      Read cache size for the leveldb cache storage in ATS v1.5 plugin storage.
    </description>
    <value>10485760</value>
  </property>

  <property>
    <name>yarn.timeline-service.entity-group-fs-store.app-cache-size</name>
    <description>
      Size of the reader cache for ATS v1.5 reader. This value controls how many
      entity groups the ATS v1.5 server should cache. If the number of active
      read entity groups is greater than the number of caches items, some reads
      may return empty data. This value must be greater than 0.
    </description>
    <value>10</value>
  </property>

  <property>
    <name>yarn.timeline-service.client.fd-flush-interval-secs</name>
    <description>
      Flush interval for ATS v1.5 writer. This value controls how frequent
      the writer will flush the HDFS FSStream for the entity/domain.
    </description>
    <value>10</value>
  </property>

  <property>
    <name>yarn.timeline-service.client.fd-clean-interval-secs</name>
    <description>
      Scan interval for ATS v1.5 writer. This value controls how frequent
      the writer will scan the HDFS FSStream for the entity/domain.
      If the FSStream is stale for a long time, this FSStream will be close.
    </description>
    <value>60</value>
  </property>

  <property>
    <name>yarn.timeline-service.client.fd-retain-secs</name>
    <description>
      How long the ATS v1.5 writer will keep an FSStream open.
      If this fsstream does not write anything for this configured time,
      it will be close.
    </description>
    <value>300</value>
  </property>

  <!-- Timeline Service v2 Configuration -->
  <property>
    <name>yarn.timeline-service.writer.class</name>
    <description>
      Storage implementation ATS v2 will use for the TimelineWriter service.
    </description>
    <value>org.apache.hadoop.yarn.server.timelineservice.storage.HBaseTimelineWriterImpl</value>
  </property>

  <property>
    <name>yarn.timeline-service.reader.class</name>
    <description>
      Storage implementation ATS v2 will use for the TimelineReader service.
    </description>
    <value>org.apache.hadoop.yarn.server.timelineservice.storage.HBaseTimelineReaderImpl</value>
  </property>

  <property>
    <name>yarn.timeline-service.client.internal-timers-ttl-secs</name>
    <description>
      How long the internal Timer Tasks can be alive in writer. If there is no
      write operation for this configured time, the internal timer tasks will
      be close.
    </description>
    <value>420</value>
  </property>

  <property>
    <description>The setting that controls how often the timeline collector
    flushes the timeline writer.</description>
    <name>yarn.timeline-service.writer.flush-interval-seconds</name>
    <value>60</value>
  </property>

  <property>
    <description>The setting that decides the capacity of the queue to hold
    asynchronous timeline entities.</description>
    <name>yarn.timeline-service.writer.async.queue.capacity</name>
    <value>100</value>
  </property>

  <property>
    <description>Time period till which the application collector will be alive
     in NM, after the  application master container finishes.</description>
    <name>yarn.timeline-service.app-collector.linger-period.ms</name>
    <value>60000</value>
  </property>

  <property>
    <description>Time line V2 client tries to merge these many number of
    async entities (if available) and then call the REST ATS V2 API to submit.
    </description>
    <name>yarn.timeline-service.timeline-client.number-of-async-entities-to-merge</name>
    <value>10</value>
  </property>

  <property>
    <description>
    The setting that controls how long the final value
    of a metric of a completed app is retained before merging into
    the flow sum. Up to this time after an application is completed
    out-of-order values that arrive can be recognized and discarded at the
    cost of increased storage.
    </description>
    <name>yarn.timeline-service.hbase.coprocessor.app-final-value-retention-milliseconds
    </name>
    <value>259200000</value>
  </property>

  <property>
    <description>
      The setting that controls how often in-memory app level
      aggregation is kicked off in timeline collector.
    </description>
    <name>yarn.timeline-service.app-aggregation-interval-secs</name>
    <value>15</value>
  </property>

  <property>
    <description>
    The default hdfs location for flowrun coprocessor jar.
    </description>
    <name>yarn.timeline-service.hbase.coprocessor.jar.hdfs.location
    </name>
    <value>/hbase/coprocessor/hadoop-yarn-server-timelineservice.jar</value>
  </property>

  <property>
    <description>
    The value of this parameter sets the prefix for all tables that are part of
    timeline service in the hbase storage schema. It can be set to "dev."
    or "staging." if it is to be used for development or staging instances.
    This way the data in production tables stays in a separate set of tables
    prefixed by "prod.".
    </description>
    <name>yarn.timeline-service.hbase-schema.prefix</name>
    <value>prod.</value>
  </property>

  <property>
    <description> Optional URL to an hbase-site.xml configuration file to be
    used to connect to the timeline-service hbase cluster. If empty or not
    specified, then the HBase configuration will be loaded from the classpath.
    When specified the values in the specified configuration file will override
    those from the ones that are present on the classpath.
    </description>
    <name>yarn.timeline-service.hbase.configuration.file
    </name>
    <value></value>
  </property>

  <property>
    <description>
      Removes the UUID if represent and limit the the flowname length with
      the given value for ATSv2. In case the value is negative or 0,
      it only removes the UUID and does not limit the flow name.
    </description>
    <name>yarn.timeline-service.flowname.max-size
    </name>
    <value>0</value>
  </property>

  <!--  Shared Cache Configuration -->

  <property>
    <description>Whether the shared cache is enabled</description>
    <name>yarn.sharedcache.enabled</name>
    <value>false</value>
  </property>

  <property>
    <description>The root directory for the shared cache</description>
    <name>yarn.sharedcache.root-dir</name>
    <value>/sharedcache</value>
  </property>

  <property>
    <description>The level of nested directories before getting to the checksum
    directories. It must be non-negative.</description>
    <name>yarn.sharedcache.nested-level</name>
    <value>3</value>
  </property>

  <property>
    <description>The implementation to be used for the SCM store</description>
    <name>yarn.sharedcache.store.class</name>
    <value>org.apache.hadoop.yarn.server.sharedcachemanager.store.InMemorySCMStore</value>
  </property>

  <property>
    <description>The implementation to be used for the SCM app-checker</description>
    <name>yarn.sharedcache.app-checker.class</name>
    <value>org.apache.hadoop.yarn.server.sharedcachemanager.RemoteAppChecker</value>
  </property>
  
  <property>
    <description>A resource in the in-memory store is considered stale
    if the time since the last reference exceeds the staleness period.
    This value is specified in minutes.</description>
    <name>yarn.sharedcache.store.in-memory.staleness-period-mins</name>
    <value>10080</value>
  </property>
  
  <property>
    <description>Initial delay before the in-memory store runs its first check
    to remove dead initial applications. Specified in minutes.</description>
    <name>yarn.sharedcache.store.in-memory.initial-delay-mins</name>
    <value>10</value>
  </property>
  
  <property>
    <description>The frequency at which the in-memory store checks to remove
    dead initial applications. Specified in minutes.</description>
    <name>yarn.sharedcache.store.in-memory.check-period-mins</name>
    <value>720</value>
  </property>
  
  <property>
    <description>The address of the admin interface in the SCM (shared cache manager)</description>
    <name>yarn.sharedcache.admin.address</name>
    <value>0.0.0.0:8047</value>
  </property>

  <property>
    <description>The number of threads used to handle SCM admin interface (1 by default)</description>
    <name>yarn.sharedcache.admin.thread-count</name>
    <value>1</value>
  </property>

  <property>
    <description>The address of the web application in the SCM (shared cache manager)</description>
    <name>yarn.sharedcache.webapp.address</name>
    <value>0.0.0.0:8788</value>
  </property>

  <property>
    <description>The frequency at which a cleaner task runs.
    Specified in minutes.</description>
    <name>yarn.sharedcache.cleaner.period-mins</name>
    <value>1440</value>
  </property>

  <property>
    <description>Initial delay before the first cleaner task is scheduled.
    Specified in minutes.</description>
    <name>yarn.sharedcache.cleaner.initial-delay-mins</name>
    <value>10</value>
  </property>

  <property>
    <description>The time to sleep between processing each shared cache
    resource. Specified in milliseconds.</description>
    <name>yarn.sharedcache.cleaner.resource-sleep-ms</name>
    <value>0</value>
  </property>

  <property>
    <description>The address of the node manager interface in the SCM
    (shared cache manager)</description>
    <name>yarn.sharedcache.uploader.server.address</name>
    <value>0.0.0.0:8046</value>
  </property>

  <property>
    <description>The number of threads used to handle shared cache manager
    requests from the node manager (50 by default)</description>
    <name>yarn.sharedcache.uploader.server.thread-count</name>
    <value>50</value>
  </property>

  <property>
    <description>The address of the client interface in the SCM
    (shared cache manager)</description>
    <name>yarn.sharedcache.client-server.address</name>
    <value>0.0.0.0:8045</value>
  </property>

  <property>
    <description>The number of threads used to handle shared cache manager
    requests from clients (50 by default)</description>
    <name>yarn.sharedcache.client-server.thread-count</name>
    <value>50</value>
  </property>

  <property>
    <description>The algorithm used to compute checksums of files (SHA-256 by
    default)</description>
    <name>yarn.sharedcache.checksum.algo.impl</name>
    <value>org.apache.hadoop.yarn.sharedcache.ChecksumSHA256Impl</value>
  </property>

  <property>
    <description>The replication factor for the node manager uploader for the
    shared cache (10 by default)</description>
    <name>yarn.sharedcache.nm.uploader.replication.factor</name>
    <value>10</value>
  </property>

  <property>
    <description>The number of threads used to upload files from a node manager
    instance (20 by default)</description>
    <name>yarn.sharedcache.nm.uploader.thread-count</name>
    <value>20</value>
  </property>

  <property>
    <description>
    ACL protocol for use in the Timeline server.
    </description>
    <name>security.applicationhistory.protocol.acl</name>
    <value></value>
  </property>

  <!-- Minicluster Configuration (for testing only!) -->

  <property>
    <description>
    Set to true for MiniYARNCluster unit tests
    </description>
    <name>yarn.is.minicluster</name>
    <value>false</value>
  </property>

  <property>
    <description>
    Set for MiniYARNCluster unit tests to control resource monitoring
    </description>
    <name>yarn.minicluster.control-resource-monitoring</name>
    <value>false</value>
  </property>

  <property>
    <description>
    Set to false in order to allow MiniYARNCluster to run tests without
    port conflicts.
    </description>
    <name>yarn.minicluster.fixed.ports</name>
    <value>false</value>
  </property>

  <property>
    <description>
    Set to false in order to allow the NodeManager in MiniYARNCluster to
    use RPC to talk to the RM.
    </description>
    <name>yarn.minicluster.use-rpc</name>
    <value>false</value>
  </property>

  <property>
    <description>
    As yarn.nodemanager.resource.memory-mb property but for the NodeManager
    in a MiniYARNCluster.
    </description>
    <name>yarn.minicluster.yarn.nodemanager.resource.memory-mb</name>
    <value>4096</value>
  </property>

  <!-- Node Labels Configuration -->

  <property>
    <description>
    Enable node labels feature
    </description>
    <name>yarn.node-labels.enabled</name>
    <value>false</value>
  </property>

  <property>
    <description>
    URI for NodeLabelManager.  The default value is
    /tmp/hadoop-yarn-${user}/node-labels/ in the local filesystem.
    </description>
    <name>yarn.node-labels.fs-store.root-dir</name>
    <value></value>
  </property>

  <property>
    <description>
    Set configuration type for node labels. Administrators can specify
    "centralized", "delegated-centralized" or "distributed".
    </description>
    <name>yarn.node-labels.configuration-type</name>
    <value>centralized</value>
  </property>

  <!-- Distributed Node Labels Configuration -->
  <property>
    <description>
    When "yarn.node-labels.configuration-type" is configured with "distributed"
    in RM, Administrators can configure in NM the provider for the
    node labels by configuring this parameter. Administrators can
    configure "config", "script" or the class name of the provider. Configured
    class needs to extend
    org.apache.hadoop.yarn.server.nodemanager.nodelabels.NodeLabelsProvider.
    If "config" is configured, then "ConfigurationNodeLabelsProvider" and if
    "script" is configured, then "ScriptNodeLabelsProvider" will be used.
    </description>
    <name>yarn.nodemanager.node-labels.provider</name>
  </property>

  <property>
    <description>
    When "yarn.nodemanager.node-labels.provider" is configured with "config",
    "Script" or the configured class extends AbstractNodeLabelsProvider, then
    periodically node labels are retrieved from the node labels provider. This
    configuration is to define the interval period.
    If -1 is configured then node labels are retrieved from provider only
    during initialization. Defaults to 10 mins.
    </description>
    <name>yarn.nodemanager.node-labels.provider.fetch-interval-ms</name>
    <value>600000</value>
  </property>

  <property>
    <description>
   Interval at which NM syncs its node labels with RM. NM will send its loaded
   labels every x intervals configured, along with heartbeat to RM.
    </description>
    <name>yarn.nodemanager.node-labels.resync-interval-ms</name>
    <value>120000</value>
  </property>

  <property>
    <description>
    When "yarn.nodemanager.node-labels.provider" is configured with "config"
    then ConfigurationNodeLabelsProvider fetches the partition label from this
    parameter.
    </description>
    <name>yarn.nodemanager.node-labels.provider.configured-node-partition</name>
  </property>

  <property>
    <description>
    When "yarn.nodemanager.node-labels.provider" is configured with "Script"
    then this configuration provides the timeout period after which it will
    interrupt the script which queries the Node labels. Defaults to 20 mins.
    </description>
    <name>yarn.nodemanager.node-labels.provider.fetch-timeout-ms</name>
    <value>1200000</value>
  </property>

  <!-- Delegated-centralized Node Labels Configuration -->
  <property>
    <description>
    When node labels "yarn.node-labels.configuration-type" is
    of type "delegated-centralized", administrators should configure
    the class for fetching node labels by ResourceManager. Configured
    class needs to extend
    org.apache.hadoop.yarn.server.resourcemanager.nodelabels.
    RMNodeLabelsMappingProvider.
    </description>
    <name>yarn.resourcemanager.node-labels.provider</name>
    <value></value>
  </property>

  <property>
    <description>
    When "yarn.node-labels.configuration-type" is configured with
    "delegated-centralized", then periodically node labels are retrieved
    from the node labels provider. This configuration is to define the
    interval. If -1 is configured then node labels are retrieved from
    provider only once for each node after it registers. Defaults to 30 mins.
    </description>
    <name>yarn.resourcemanager.node-labels.provider.fetch-interval-ms</name>
    <value>1800000</value>
  </property>

  <!-- Distributed Node Attributes Configuration -->
  <property>
    <description>
      This property determines which provider will be plugged by the
      node manager to collect node-attributes. Administrators can
      configure "config", "script" or the class name of the provider.
      Configured class needs to extend
      org.apache.hadoop.yarn.server.nodemanager.nodelabels.NodeAttributesProvider.
      If "config" is configured, then "ConfigurationNodeLabelsProvider" and if
      "script" is configured, then "ScriptBasedNodeAttributesProvider"
      will be used.
    </description>
    <name>yarn.nodemanager.node-attributes.provider</name>
  </property>

  <property>
    <description>
      The node attribute script NM runs to collect node attributes.
      Script output Line starting with "NODE_ATTRIBUTE:" will be
      considered as a record of node attribute, attribute name, type
      and value should be delimited by comma. Each of such lines
      will be parsed to a node attribute.
    </description>
    <name>yarn.nodemanager.node-attributes.provider.script.path</name>
  </property>

  <property>
    <description>
      Command arguments passed to the node attribute script.
    </description>
    <name>yarn.nodemanager.node-attributes.provider.script.opts</name>
  </property>

  <property>
    <description>
      Time interval that determines how long NM fetches node attributes
      from a given provider. If -1 is configured then node labels are
      retrieved from provider only during initialization. Defaults to 10 mins.
    </description>
    <name>yarn.nodemanager.node-attributes.provider.fetch-interval-ms</name>
    <value>600000</value>
  </property>

  <property>
    <description>
      Timeout period after which NM will interrupt the node attribute
      provider script which queries node attributes. Defaults to 20 mins.
    </description>
    <name>yarn.nodemanager.node-attributes.provider.fetch-timeout-ms</name>
    <value>1200000</value>
  </property>

  <property>
    <description>
      When "yarn.nodemanager.node-attributes.provider" is configured with
      "config" then ConfigurationNodeAttributesProvider fetches node attributes
      from this parameter.
    </description>
    <name>yarn.nodemanager.node-attributes.provider.configured-node-attributes</name>
    <value></value>
  </property>

  <property>
    <description>
      Interval at which NM syncs its node attributes with RM. NM will send its loaded
      attributes every x intervals configured, along with heartbeat to RM.
    </description>
    <name>yarn.nodemanager.node-attributes.resync-interval-ms</name>
    <value>120000</value>
  </property>

  <property>
    <description>
    Timeout in seconds for YARN node graceful decommission.
    This is the maximal time to wait for running containers and applications to complete
    before transition a DECOMMISSIONING node into DECOMMISSIONED.
    </description>
    <name>yarn.resourcemanager.nodemanager-graceful-decommission-timeout-secs</name>
    <value>3600</value>
  </property>

  <property>
    <description>
    Timeout in seconds of DecommissioningNodesWatcher internal polling.
    </description>
    <name>yarn.resourcemanager.decommissioning-nodes-watcher.poll-interval-secs</name>
    <value>20</value>
  </property>

  <property>
    <description>
    Used to specify custom web services for Resourcemanager. Value can be
    classnames separated by comma.
    Ex: org.apache.hadoop.yarn.server.resourcemanager.webapp.RMWebServices,
    org.apache.hadoop.yarn.server.resourcemanager.webapp.DummyClass
    </description>
    <name>yarn.http.rmwebapp.external.classes</name>
    <value></value>
  </property>

  <property>
    <description>
    Used to specify custom scheduler page
    </description>
    <name>yarn.http.rmwebapp.scheduler.page.class</name>
    <value></value>
  </property>

  <property>
    <description>
    Used to specify custom DAO classes used by custom web services.
    </description>
    <name>yarn.http.rmwebapp.custom.dao.classes</name>
    <value></value>
  </property>

  <property>
    <description>
    Used to specify custom DAO classes used by custom web services which requires
    root unwrapping.
    </description>
    <name>yarn.http.rmwebapp.custom.unwrapped.dao.classes</name>
    <value></value>
  </property>

  <property>
    <description>The Node Label script to run. Script output Line starting with
     "NODE_PARTITION:" will be considered as Node Label Partition. In case of
     multiple lines have this pattern, then last one will be considered
    </description>
    <name>yarn.nodemanager.node-labels.provider.script.path</name>
  </property>

  <property>
    <description>The arguments to pass to the Node label script.</description>
    <name>yarn.nodemanager.node-labels.provider.script.opts</name>
  </property>

  <!-- Federation Configuration -->
  <property>
    <description>
      Flag to indicate whether the RM is participating in Federation or not.
    </description>
    <name>yarn.federation.enabled</name>
    <value>false</value>
  </property>
  <property>
    <description>
      Machine list file to be loaded by the FederationSubCluster Resolver
    </description>
    <name>yarn.federation.machine-list</name>
  </property>
  <property>
    <description>
      Class name for SubClusterResolver
    </description>
    <name>yarn.federation.subcluster-resolver.class</name>
    <value>org.apache.hadoop.yarn.server.federation.resolver.DefaultSubClusterResolverImpl</value>
  </property>

  <property>
    <description>
      Store class name for federation state store
    </description>
    <name>yarn.federation.state-store.class</name>
    <value>org.apache.hadoop.yarn.server.federation.store.impl.MemoryFederationStateStore</value>
  </property>

  <property>
   <description>
    The time in seconds after which the federation state store local cache
    will be refreshed periodically
   </description>
   <name>yarn.federation.cache-ttl.secs</name>
   <value>300</value>
  </property>

  <property>
    <description>The registry base directory for federation.</description>
    <name>yarn.federation.registry.base-dir</name>
    <value>yarnfederation/</value>
  </property>

  <!-- Other Configuration -->

  <property>
    <description>The registry implementation to use.</description>
    <name>yarn.registry.class</name>
    <value>org.apache.hadoop.registry.client.impl.FSRegistryOperationsService</value>
  </property>

  <property>
    <description>The interval that the yarn client library uses to poll the
    completion status of the asynchronous API of application client protocol.
    </description>
    <name>yarn.client.application-client-protocol.poll-interval-ms</name>
    <value>200</value>
  </property>

  <property>
    <description>
    The duration (in ms) the YARN client waits for an expected state change
    to occur.  -1 means unlimited wait time.
    </description>
    <name>yarn.client.application-client-protocol.poll-timeout-ms</name>
    <value>-1</value>
  </property>

  <property>
    <description>RSS usage of a process computed via
    /proc/pid/stat is not very accurate as it includes shared pages of a
    process. /proc/pid/smaps provides useful information like
    Private_Dirty, Private_Clean, Shared_Dirty, Shared_Clean which can be used
    for computing more accurate RSS. When this flag is enabled, RSS is computed
    as Min(Shared_Dirty, Pss) + Private_Clean + Private_Dirty. It excludes
    read-only shared mappings in RSS computation.  
    </description>
    <name>yarn.nodemanager.container-monitor.procfs-tree.smaps-based-rss.enabled</name>
    <value>false</value>
  </property>

  <property>
    <description>
    URL for log aggregation server
    </description>
    <name>yarn.log.server.url</name>
    <value></value>
  </property>

  <property>
    <description>
    URL for log aggregation server web service
    </description>
    <name>yarn.log.server.web-service.url</name>
    <value></value>
  </property>

  <property>
    <description>
    RM Application Tracking URL
    </description>
    <name>yarn.tracking.url.generator</name>
    <value></value>
  </property>

  <property>
    <description>
    Class to be used for YarnAuthorizationProvider
    </description>
    <name>yarn.authorization-provider</name>
    <value></value>
  </property>

  <property>
    <description>Defines how often NMs wake up to upload log files.
    The default value is -1. By default, the logs will be uploaded when
    the application is finished. By setting this configuration logs can
    be uploaded periodically while the application is running.
    The minimum positive accepted value can be configured by the setting
    "yarn.nodemanager.log-aggregation.roll-monitoring-interval-seconds.min".
    </description>
    <name>yarn.nodemanager.log-aggregation.roll-monitoring-interval-seconds</name>
    <value>-1</value>
  </property>

  <property>
    <description>Defines the positive minimum hard limit for
    "yarn.nodemanager.log-aggregation.roll-monitoring-interval-seconds".
    If this configuration has been set less than its default value (3600)
    the NodeManager may raise a warning.
    </description>
    <name>yarn.nodemanager.log-aggregation.roll-monitoring-interval-seconds.min</name>
    <value>3600</value>
  </property>

  <property>
    <description>Define how many aggregated log files per application per NM
    we can have in remote file system. By default, the total number of
    aggregated log files per application per NM is 30.
    </description>
    <name>yarn.nodemanager.log-aggregation.num-log-files-per-app</name>
    <value>30</value>
  </property>

  <property>
    <description>
    Enable/disable intermediate-data encryption at YARN level. For now,
    this only is used by the FileSystemRMStateStore to setup right
    file-system security attributes.
    </description>
    <name>yarn.intermediate-data-encryption.enable</name>
    <value>false</value>
  </property>

  <property>
    <description>Flag to enable cross-origin (CORS) support in the NM. This flag
    requires the CORS filter initializer to be added to the filter initializers
    list in core-site.xml.</description>
    <name>yarn.nodemanager.webapp.cross-origin.enabled</name>
    <value>false</value>
  </property>

  <property>
    <description>
    Defines maximum application priority in a cluster.
    If an application is submitted with a priority higher than this value, it will be
    reset to this maximum value.
    </description>
    <name>yarn.cluster.max-application-priority</name>
    <value>0</value>
  </property>

  <property>
    <description>
    The default log aggregation policy class. Applications can
    override it via LogAggregationContext. This configuration can provide
    some cluster-side default behavior so that if the application doesn't
    specify any policy via LogAggregationContext administrators of the cluster
    can adjust the policy globally.
    </description>
    <name>yarn.nodemanager.log-aggregation.policy.class</name>
    <value>org.apache.hadoop.yarn.server.nodemanager.containermanager.logaggregation.AllContainerLogAggregationPolicy</value>
  </property>

  <property>
    <description>
    The default parameters for the log aggregation policy. Applications can
    override it via LogAggregationContext. This configuration can provide
    some cluster-side default behavior so that if the application doesn't
    specify any policy via LogAggregationContext administrators of the cluster
    can adjust the policy globally.
    </description>
    <name>yarn.nodemanager.log-aggregation.policy.parameters</name>
    <value></value>
  </property>

  <property>
    <description>
    Enable/Disable AMRMProxyService in the node manager. This service is used to
    intercept calls from the application masters to the resource manager.
    </description>
    <name>yarn.nodemanager.amrmproxy.enabled</name>
    <value>false</value>
  </property>

  <property>
    <description>
    The address of the AMRMProxyService listener.
    </description>
    <name>yarn.nodemanager.amrmproxy.address</name>
    <value>0.0.0.0:8049</value>
  </property>

  <property>
    <description>
    The number of threads used to handle requests by the AMRMProxyService.
    </description>
    <name>yarn.nodemanager.amrmproxy.client.thread-count</name>
    <value>25</value>
  </property>

  <property>
    <description>
    The comma separated list of class names that implement the
    RequestInterceptor interface. This is used by the AMRMProxyService to create
    the request processing pipeline for applications.
    </description>
    <name>yarn.nodemanager.amrmproxy.interceptor-class.pipeline</name>
    <value>org.apache.hadoop.yarn.server.nodemanager.amrmproxy.DefaultRequestInterceptor</value>
  </property>

  <property>
    <description>
    Whether AMRMProxy HA is enabled.
    </description>
    <name>yarn.nodemanager.amrmproxy.ha.enable</name>
    <value>false</value>
  </property>

  <property>
    <description>
    Setting that controls whether distributed scheduling is enabled.
    </description>
    <name>yarn.nodemanager.distributed-scheduling.enabled</name>
    <value>false</value>
  </property>

  <property>
    <description>
      Setting that controls whether opportunistic container allocation
      is enabled.
    </description>
    <name>yarn.resourcemanager.opportunistic-container-allocation.enabled</name>
    <value>false</value>
  </property>

  <property>
    <description>
      Maximum number of opportunistic containers to be allocated per
      Application Master heartbeat.
    </description>
    <name>yarn.resourcemanager.opportunistic.max.container-allocation.per.am.heartbeat</name>
    <value>-1</value>
  </property>

  <property>
    <description>
    Number of nodes to be used by the Opportunistic Container Allocator for
    dispatching containers during container allocation.
    </description>
    <name>yarn.resourcemanager.opportunistic-container-allocation.nodes-used</name>
    <value>10</value>
  </property>

  <property>
    <description>
    Frequency for computing least loaded NMs.
    </description>
    <name>yarn.resourcemanager.nm-container-queuing.sorting-nodes-interval-ms</name>
    <value>1000</value>
  </property>

  <property>
    <description>
    Comparator for determining node load for Distributed Scheduling.
    </description>
    <name>yarn.resourcemanager.nm-container-queuing.load-comparator</name>
    <value>QUEUE_LENGTH</value>
  </property>

  <property>
    <description>
    Value of standard deviation used for calculation of queue limit thresholds.
    </description>
    <name>yarn.resourcemanager.nm-container-queuing.queue-limit-stdev</name>
    <value>1.0f</value>
  </property>

  <property>
    <description>
    Min length of container queue at NodeManager.
    </description>
    <name>yarn.resourcemanager.nm-container-queuing.min-queue-length</name>
    <value>5</value>
  </property>

  <property>
    <description>
    Max length of container queue at NodeManager.
    </description>
    <name>yarn.resourcemanager.nm-container-queuing.max-queue-length</name>
    <value>15</value>
  </property>

  <property>
    <description>
    Min queue wait time for a container at a NodeManager.
    </description>
    <name>yarn.resourcemanager.nm-container-queuing.min-queue-wait-time-ms</name>
    <value>10</value>
  </property>

  <property>
    <description>
    Max queue wait time for a container queue at a NodeManager.
    </description>
    <name>yarn.resourcemanager.nm-container-queuing.max-queue-wait-time-ms</name>
    <value>100</value>
  </property>

  <property>
    <description>
    Use container pause as the preemption policy over kill in the container
    queue at a NodeManager.
    </description>
    <name>yarn.nodemanager.opportunistic-containers-use-pause-for-preemption</name>
    <value>false</value>
  </property>

  <property>
    <description>
    Error filename pattern, to identify the file in the container's
    Log directory which contain the container's error log. As error file
    redirection is done by client/AM and yarn will not be aware of the error
    file name. YARN uses this pattern to identify the error file and tail
    the error log as diagnostics when the container execution returns non zero
    value. Filename patterns are case sensitive and should match the
    specifications of FileSystem.globStatus(Path) api. If multiple filenames
    matches the pattern, first file matching the pattern will be picked.
    </description>
    <name>yarn.nodemanager.container.stderr.pattern</name>
    <value>{*stderr*,*STDERR*}</value>
  </property>

  <property>
    <description>
    Size of the container error file which needs to be tailed, in bytes.
    </description>
    <name>yarn.nodemanager.container.stderr.tail.bytes </name>
    <value>4096</value>
  </property>

  <property>
    <description>
    Choose different implementation of node label's storage
    </description>
    <name>yarn.node-labels.fs-store.impl.class</name>
    <value>org.apache.hadoop.yarn.nodelabels.FileSystemNodeLabelsStore</value>
  </property>

  <property>
    <description>
      Enable the CSRF filter for the RM web app
    </description>
    <name>yarn.resourcemanager.webapp.rest-csrf.enabled</name>
    <value>false</value>
  </property>

  <property>
    <description>
      Optional parameter that indicates the custom header name to use for CSRF
      protection.
    </description>
    <name>yarn.resourcemanager.webapp.rest-csrf.custom-header</name>
    <value>X-XSRF-Header</value>
  </property>

  <property>
    <description>
      Optional parameter that indicates the list of HTTP methods that do not
      require CSRF protection
    </description>
    <name>yarn.resourcemanager.webapp.rest-csrf.methods-to-ignore</name>
    <value>GET,OPTIONS,HEAD</value>
  </property>

  <property>
    <description>
      Enable the CSRF filter for the NM web app
    </description>
    <name>yarn.nodemanager.webapp.rest-csrf.enabled</name>
    <value>false</value>
  </property>

  <property>
    <description>
      Optional parameter that indicates the custom header name to use for CSRF
      protection.
    </description>
    <name>yarn.nodemanager.webapp.rest-csrf.custom-header</name>
    <value>X-XSRF-Header</value>
  </property>

  <property>
    <description>
      Optional parameter that indicates the list of HTTP methods that do not
      require CSRF protection
    </description>
    <name>yarn.nodemanager.webapp.rest-csrf.methods-to-ignore</name>
    <value>GET,OPTIONS,HEAD</value>
  </property>

  <property>
    <description>
      The name of disk validator.
    </description>
    <name>yarn.nodemanager.disk-validator</name>
    <value>basic</value>
  </property>

  <property>
  <description>
      Enable the CSRF filter for the timeline service web app
    </description>
    <name>yarn.timeline-service.webapp.rest-csrf.enabled</name>
    <value>false</value>
  </property>

  <property>
    <description>
      Optional parameter that indicates the custom header name to use for CSRF
      protection.
    </description>
    <name>yarn.timeline-service.webapp.rest-csrf.custom-header</name>
    <value>X-XSRF-Header</value>
  </property>

  <property>
    <description>
      Optional parameter that indicates the list of HTTP methods that do not
      require CSRF protection
    </description>
    <name>yarn.timeline-service.webapp.rest-csrf.methods-to-ignore</name>
    <value>GET,OPTIONS,HEAD</value>
  </property>

  <property>
    <description>
      Enable the XFS filter for YARN
    </description>
    <name>yarn.webapp.xfs-filter.enabled</name>
    <value>true</value>
  </property>

  <property>
    <description>
      Property specifying the xframe options value.
    </description>
    <name>yarn.resourcemanager.webapp.xfs-filter.xframe-options</name>
    <value>SAMEORIGIN</value>
  </property>

  <property>
    <description>
      Property specifying the xframe options value.
    </description>
    <name>yarn.nodemanager.webapp.xfs-filter.xframe-options</name>
    <value>SAMEORIGIN</value>
  </property>

  <property>
    <description>
      Property specifying the xframe options value.
    </description>
    <name>yarn.timeline-service.webapp.xfs-filter.xframe-options</name>
    <value>SAMEORIGIN</value>
  </property>

  <property>
    <description>
    The least amount of time(msec.) an inactive (decommissioned or shutdown) node can
    stay in the nodes list of the resourcemanager after being declared untracked.
    A node is marked untracked if and only if it is absent from both include and
    exclude nodemanager lists on the RM. All inactive nodes are checked twice per
    timeout interval or every 10 minutes, whichever is lesser, and marked appropriately.
    The same is done when refreshNodes command (graceful or otherwise) is invoked.
    </description>
    <name>yarn.resourcemanager.node-removal-untracked.timeout-ms</name>
    <value>60000</value>
  </property>

  <property>
    <description>
    The RMAppLifetimeMonitor Service uses this value as monitor interval
    </description>
    <name>yarn.resourcemanager.application-timeouts.monitor.interval-ms</name>
    <value>3000</value>
  </property>

  <property>
    <description>
      Specifies what the RM does regarding HTTPS enforcement for communication
      with AM Web Servers, as well as generating and providing certificates.
      Possible values are:
      - NONE - the RM will do nothing special.
      - LENIENT - the RM will generate and provide a keystore and truststore
      to the AM, which it is free to use for HTTPS in its tracking URL web
      server.  The RM proxy will still allow HTTP connections to AMs that opt
      not to use HTTPS.
      - STRICT - this is the same as LENIENT, except that the RM proxy will
      only allow HTTPS connections to AMs; HTTP connections will be blocked
      and result in a warning page to the user.
    </description>
    <name>yarn.resourcemanager.application-https.policy</name>
    <value>NONE</value>
  </property>

  <property>
    <description>
      Defines the limit of the diagnostics message of an application
      attempt, in kilo characters (character count * 1024).
      When using ZooKeeper to store application state behavior, its
      important to limit the size of the diagnostic messages to
      prevent YARN from overwhelming ZooKeeper. In cases where
      yarn.resourcemanager.state-store.max-completed-applications is set to
      a large number, it may be desirable to reduce the value of this property
      to limit the total data stored.
    </description>
    <name>yarn.app.attempt.diagnostics.limit.kc</name>
    <value>64</value>
  </property>

  <property>
    <description>
      Flag to enable cross-origin (CORS) support for timeline service v1.x or
      Timeline Reader in timeline service v2. For timeline service v2, also add
      org.apache.hadoop.security.HttpCrossOriginFilterInitializer to the
      configuration hadoop.http.filter.initializers in core-site.xml.
    </description>
    <name>yarn.timeline-service.http-cross-origin.enabled</name>
    <value>false</value>
  </property>

  <property>
    <description>
      The comma separated list of class names that implement the
      RequestInterceptor interface. This is used by the RouterClientRMService
      to create the request processing pipeline for users.
    </description>
    <name>yarn.router.clientrm.interceptor-class.pipeline</name>
    <value>org.apache.hadoop.yarn.server.router.clientrm.DefaultClientRequestInterceptor</value>
  </property>

  <property>
    <description>
      The thread pool executor size of per user in Router ClientRM Service FederationClientInterceptor.
    </description>
    <name>yarn.router.interceptor.user.threadpool-size</name>
    <value>5</value>
  </property>

  <property>
    <description>
      Size of LRU cache for Router ClientRM Service and RMAdmin Service.
    </description>
    <name>yarn.router.pipeline.cache-max-size</name>
    <value>25</value>
  </property>

  <property>
    <description>
      The comma separated list of class names that implement the
      RequestInterceptor interface. This is used by the RouterRMAdminService
      to create the request processing pipeline for users.
    </description>
    <name>yarn.router.rmadmin.interceptor-class.pipeline</name>
    <value>org.apache.hadoop.yarn.server.router.rmadmin.DefaultRMAdminRequestInterceptor</value>
  </property>

  <property>
    <description>
      The actual address the server will bind to. If this optional address is
      set, the RPC and webapp servers will bind to this address and the port specified in
      yarn.router.address and yarn.router.webapp.address, respectively. This is
      most useful for making Router listen to all interfaces by setting to 0.0.0.0.
    </description>
    <name>yarn.router.bind-host</name>
    <value></value>
  </property>

  <property>
    <description>
      Comma-separated list of PlacementRules to determine how applications
      submitted by certain users get mapped to certain queues. Default is
      user-group, which corresponds to UserGroupMappingPlacementRule.
    </description>
    <name>yarn.scheduler.queue-placement-rules</name>
    <value>user-group</value>
  </property>

  <property>
    <description>
      The comma separated list of class names that implement the
      RequestInterceptor interface. This is used by the RouterWebServices
      to create the request processing pipeline for users.
    </description>
    <name>yarn.router.webapp.interceptor-class.pipeline</name>
    <value>org.apache.hadoop.yarn.server.router.webapp.DefaultRequestInterceptorREST</value>
  </property>

  <property>
    <description>
      The http address of the Router web application.
      If only a host is provided as the value,
      the webapp will be served on a random port.
    </description>
    <name>yarn.router.webapp.address</name>
    <value>0.0.0.0:8089</value>
  </property>

  <property>
    <description>
      The https address of the Router web application.
      If only a host is provided as the value,
      the webapp will be served on a random port.
    </description>
    <name> yarn.router.webapp.https.address</name>
    <value>0.0.0.0:8091</value>
  </property>

  <property>
    <description>
       It is TimelineClient 1.5 configuration whether to store active
       application’s timeline data with in user directory i.e
       ${yarn.timeline-service.entity-group-fs-store.active-dir}/${user.name}
    </description>
    <name>yarn.timeline-service.entity-group-fs-store.with-user-dir</name>
    <value>false</value>
  </property>

  <!-- resource types configuration -->
  <property>
    <name>yarn.resource-types</name>
    <value></value>
    <description>
    The resource types to be used for scheduling. Use resource-types.xml
    to specify details about the individual resource types.
    </description>
  </property>
 
  <property>
    <name>yarn.webapp.filter-entity-list-by-user</name>
    <value>false</value>
      <description>
        Flag to enable display of applications per user as an admin
        configuration.
      </description>
  </property>

  <property>
    <name>yarn.webapp.filter-invalid-xml-chars</name>
    <value>false</value>
    <description>
      Flag to enable filter of invalid xml 1.0 characters present in the
      value of diagnostics field of apps output from RM WebService.
    </description>
  </property>

  <property>
    <description>
      The type of configuration store to use for scheduler configurations.
      Default is "file", which uses file based capacity-scheduler.xml to
      retrieve and change scheduler configuration. To enable API based
      scheduler configuration, use either "memory" (in memory storage, no
      persistence across restarts), "leveldb" (leveldb based storage), or
      "zk" (zookeeper based storage). API based configuration is only useful
      when using a scheduler which supports mutable configuration. Currently
      only capacity scheduler supports this.
    </description>
    <name>yarn.scheduler.configuration.store.class</name>
    <value>file</value>
  </property>

  <property>
    <description>
      The class to use for configuration mutation ACL policy if using a mutable
      configuration provider. Controls whether a mutation request is allowed.
      The DefaultConfigurationMutationACLPolicy checks if the requestor is a
      YARN admin.
    </description>
    <name>yarn.scheduler.configuration.mutation.acl-policy.class</name>
    <value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.DefaultConfigurationMutationACLPolicy</value>
  </property>

  <property>
    <description>
      The storage path for LevelDB implementation of configuration store,
      when yarn.scheduler.configuration.store.class is configured to be
      "leveldb".
    </description>
    <name>yarn.scheduler.configuration.leveldb-store.path</name>
    <value>${hadoop.tmp.dir}/yarn/system/confstore</value>
  </property>

  <property>
    <description>
      The compaction interval for LevelDB configuration store in secs,
      when yarn.scheduler.configuration.store.class is configured to be
      "leveldb". Default is one day.
    </description>
    <name>yarn.scheduler.configuration.leveldb-store.compaction-interval-secs</name>
    <value>86400</value>
  </property>

  <property>
    <description>
      The max number of configuration change log entries kept in config
      store, when yarn.scheduler.configuration.store.class is configured to be
      "leveldb" or "zk". Default is 1000 for either.
    </description>
    <name>yarn.scheduler.configuration.store.max-logs</name>
    <value>1000</value>
  </property>

  <property>
    <description>
      The file system directory to store the configuration files. The path
      can be any format as long as it follows hadoop compatible schema,
      for example value "file:///path/to/dir" means to store files on local
      file system, value "hdfs:///path/to/dir" means to store files on HDFS.
      If resource manager HA is enabled, recommended to use hdfs schema so
      it works in fail-over scenario.
    </description>
    <name>yarn.scheduler.configuration.fs.path</name>
    <value>file://${hadoop.tmp.dir}/yarn/system/schedconf</value>
  </property>

  <property>
    <description>
      The max number of configuration file in filesystem.
      Default is 100 for either.
    </description>
    <name>yarn.scheduler.configuration.max.version</name>
    <value>100</value>
  </property>

  <property>
    <description>
      ZK root node path for configuration store when using zookeeper-based
      configuration store.
    </description>
    <name>yarn.scheduler.configuration.zk-store.parent-path</name>
    <value>/confstore</value>
  </property>

  <property>
    <description>
      Provides an option for client to load supported resource types from RM
      instead of depending on local resource-types.xml file.
    </description>
    <name>yarn.client.load.resource-types.from-server</name>
    <value>false</value>
  </property>

  <property>
    <description>
      This setting controls if pluggable device framework is enabled.
      Disabled by default
    </description>
    <name>yarn.nodemanager.pluggable-device-framework.enabled</name>
    <value>false</value>
  </property>

  <property>
    <description>
      Configure vendor device plugin class name here. Comma separated.
      The class must be found in CLASSPATH. The pluggable device framework will
      load these classes.
    </description>
    <name>yarn.nodemanager.pluggable-device-framework.device-classes</name>
    <value></value>
  </property>

  <property>
    <description>
      When yarn.nodemanager.resource.gpu.allowed-gpu-devices=auto specified,
      YARN NodeManager needs to run GPU discovery binary (now only support
      nvidia-smi) to get GPU-related information.
      When value is empty (default), YARN NodeManager will try to locate
      discovery executable itself.
      An example of the config value is: /usr/local/bin/nvidia-smi
    </description>
    <name>yarn.nodemanager.resource-plugins.gpu.path-to-discovery-executables</name>
    <value></value>
  </property>

  <property>
    <description>
      Enable additional discovery/isolation of resources on the NodeManager,
      split by comma. By default, this is empty.
      Acceptable values: { "yarn.io/gpu", "yarn.io/fpga"}.
    </description>
    <name>yarn.nodemanager.resource-plugins</name>
    <value></value>
  </property>

  <property>
    <description>
      Specifies whether the initialization of the Node Manager should continue
      if a certain device (GPU, FPGA, etc) was not found in the system. If set
      to "true", then an exception will be thrown if a device is missing or
      an error occurred during discovery.
    </description>
    <name>yarn.nodemanager.resource-plugins.fail-fast</name>
    <value></value>
  </property>

  <property>
    <description>
      Specify GPU devices which can be managed by YARN NodeManager, split by comma
      Number of GPU devices will be reported to RM to make scheduling decisions.
      Set to auto (default) let YARN automatically discover GPU resource from
      system.

      Manually specify GPU devices if auto detect GPU device failed or admin
      only want subset of GPU devices managed by YARN. GPU device is identified
      by their minor device number and index. A common approach to get minor
      device number of GPUs is using "nvidia-smi -q" and search "Minor Number"
      output.

      When manual specify minor numbers, admin needs to include indice of GPUs
      as well, format is index:minor_number[,index:minor_number...]. An example
      of manual specification is "0:0,1:1,2:2,3:4" to allow YARN NodeManager to
      manage GPU devices with indice 0/1/2/3 and minor number 0/1/2/4.
      numbers .
    </description>
    <name>yarn.nodemanager.resource-plugins.gpu.allowed-gpu-devices</name>
    <value>auto</value>
  </property>

  <property>
    <description>
      Specify docker command plugin for GPU. By default uses Nvidia docker V1.
    </description>
    <name>yarn.nodemanager.resource-plugins.gpu.docker-plugin</name>
    <value>nvidia-docker-v1</value>
  </property>

  <property>
    <description>
      Specify end point of nvidia-docker-plugin.
      Please find documentation: https://github.com/NVIDIA/nvidia-docker/wiki
      For more details.
    </description>
    <name>yarn.nodemanager.resource-plugins.gpu.docker-plugin.nvidia-docker-v1.endpoint</name>
    <value>http://localhost:3476/v1.0/docker/cli</value>
  </property>

  <property>
    <description>
      Specify one vendor plugin to handle FPGA devices discovery/IP download/configure.
      Only IntelFpgaOpenclPlugin is supported by default.
      We only allow one NM configured with one vendor FPGA plugin now since the end user can put the same
      vendor's cards in one host. And this also simplify our design.
    </description>
    <name>yarn.nodemanager.resource-plugins.fpga.vendor-plugin.class</name>
    <value>org.apache.hadoop.yarn.server.nodemanager.containermanager.resourceplugin.fpga.IntelFpgaOpenclPlugin</value>
  </property>

  <property>
    <description>
      When yarn.nodemanager.resource.fpga.allowed-fpga-devices=auto specified,
      YARN NodeManager needs to run FPGA discovery binary (now only support
      IntelFpgaOpenclPlugin) to get FPGA information.
      When value is empty (default), YARN NodeManager will try to locate
      discovery executable from vendor plugin's preference
    </description>
    <name>yarn.nodemanager.resource-plugins.fpga.path-to-discovery-executables</name>
    <value></value>
  </property>

  <property>
    <description>
      Specify FPGA devices which can be managed by YARN NodeManager, split by comma
      Number of FPGA devices will be reported to RM to make scheduling decisions.
      Set to auto (default) let YARN automatically discover FPGA resource from
      system.

      Manually specify FPGA devices if admin only want subset of FPGA devices managed by YARN.
      At present, since we can only configure one major number in c-e.cfg, FPGA device is
      identified by their minor device number. A common approach to get minor
      device number of FPGA is using "aocl diagnose" and check uevent with device name.
      A sample manual value for this is like "0,1"
    </description>
    <name>yarn.nodemanager.resource-plugins.fpga.allowed-fpga-devices</name>
    <value>auto</value>
  </property>

  <property>
    <description>
      Absolute path to a script or executable that returns the available FPGA cards.
      The returned string must be a single line and follow the format:
      "deviceA/N:M,deviceB/X:Y". Example: "acl0/243:0,acl1/243:1". The numbers after
      the "/" character are the device major and minor numbers.

      When the script is enabled, auto-discovery is disabled the "aocl" command is not
      invoked to verify the available cards.
    </description>
    <name>yarn.nodemanager.resource-plugins.fpga.device-discovery-script</name>
    <value></value>
  </property>

  <property>
    <description>
      List of FPGA available devices in the given node.
      The value must follow the format: "deviceA/N:M,deviceB/X:Y".
      Example: "acl0/243:0,acl1/243:1". The numbers after
      the "/" character are the device major and minor numbers.

      When this property is used, both auto-discovery and external script are ignored.
    </description>
    <name>yarn.nodemanager.resource-plugins.fpga.available-devices</name>
    <value></value>
  </property>

  <property>
    <description>The http address of the timeline reader web application.</description>
    <name>yarn.timeline-service.reader.webapp.address</name>
    <value>${yarn.timeline-service.webapp.address}</value>
  </property>

  <property>
    <description>The https address of the timeline reader web application.</description>
    <name>yarn.timeline-service.reader.webapp.https.address</name>
    <value>${yarn.timeline-service.webapp.https.address}</value>
  </property>

  <property>
    <description>
      The actual address timeline reader will bind to. If this optional address is
      set, the reader server will bind to this address and the port specified in
      yarn.timeline-service.reader.webapp.address.
      This is most useful for making the service listen to all interfaces by setting to
      0.0.0.0.
    </description>
    <name>yarn.timeline-service.reader.bind-host</name>
    <value></value>
  </property>

  <property>
    <description>
    Whether to enable the NUMA awareness for containers in Node Manager.
    </description>
    <name>yarn.nodemanager.numa-awareness.enabled</name>
    <value>false</value>
  </property>

  <property>
    <description>
    Whether to read the NUMA topology from the system or from the
    configurations. If the value is true then NM reads the NUMA topology from
    system using the command 'numactl --hardware'. If the value is false then NM
    reads the topology from the configurations
    'yarn.nodemanager.numa-awareness.node-ids'(for node id's),
    'yarn.nodemanager.numa-awareness.&lt;NODE_ID&gt;.memory'(for each node memory),
    'yarn.nodemanager.numa-awareness.&lt;NODE_ID&gt;.cpus'(for each node cpus).
    </description>
    <name>yarn.nodemanager.numa-awareness.read-topology</name>
    <value>false</value>
  </property>

  <property>
    <description>
    NUMA node id's in the form of comma separated list. Memory and No of CPUs
    will be read using the properties
    'yarn.nodemanager.numa-awareness.&lt;NODE_ID&gt;.memory' and
    'yarn.nodemanager.numa-awareness.&lt;NODE_ID&gt;.cpus' for each id specified
    in this value. This property value will be read only when
    'yarn.nodemanager.numa-awareness.read-topology=false'.

    For example, if yarn.nodemanager.numa-awareness.node-ids=0,1
    then need to specify memory and cpus for node id's '0' and '1' like below,
    yarn.nodemanager.numa-awareness.0.memory=73717
    yarn.nodemanager.numa-awareness.0.cpus=4
    yarn.nodemanager.numa-awareness.1.memory=73727
    yarn.nodemanager.numa-awareness.1.cpus=4
    </description>
    <name>yarn.nodemanager.numa-awareness.node-ids</name>
    <value></value>
  </property>

  <property>
    <description>
    The numactl command path which controls NUMA policy for processes or
    shared memory.
    </description>
    <name>yarn.nodemanager.numa-awareness.numactl.cmd</name>
    <value>/usr/bin/numactl</value>
  </property>

  <property>
    <description>
      Enable elastic memory control. This is a Linux only feature.
      When enabled, the node manager adds a listener to receive an
      event, if all the containers exceeded a limit.
      The limit is specified by yarn.nodemanager.resource.memory-mb.
      If this is not set, the limit is set based on the capabilities.
      See yarn.nodemanager.resource.detect-hardware-capabilities
      for details.
      The limit applies to the physical or virtual (rss+swap) memory
      depending on whether yarn.nodemanager.pmem-check-enabled or
      yarn.nodemanager.vmem-check-enabled is set.
    </description>
    <name>yarn.nodemanager.elastic-memory-control.enabled</name>
    <value>false</value>
  </property>

  <property>
    <description>
      The name of a JVM class. The class must implement the Runnable
      interface. It is called,
      if yarn.nodemanager.elastic-memory-control.enabled
      is set and the system reaches its memory limit.
      When called the handler must preempt a container,
      since all containers are frozen by cgroups.
      Once preempted some memory is released, so that the
      kernel can resume all containers. Because of this the
      handler has to act quickly.
    </description>
    <name>yarn.nodemanager.elastic-memory-control.oom-handler</name>
    <value>org.apache.hadoop.yarn.server.nodemanager.containermanager.linux.resources.DefaultOOMHandler</value>
  </property>

  <property>
    <description>
      The path to the oom-listener tool. Elastic memory control is only
      supported on Linux. It relies on kernel events. The tool forwards
      these kernel events to the standard input, so that the node manager
      can preempt containers, in and out-of-memory scenario.
      You rarely need to update this setting.
    </description>
    <name>yarn.nodemanager.elastic-memory-control.oom-listener.path</name>
    <value></value>
  </property>

  <property>
    <description>
      Maximum time to wait for an OOM situation to get resolved before
      bringing down the node.
    </description>
    <name>yarn.nodemanager.elastic-memory-control.timeout-sec</name>
    <value>5</value>
  </property>
  <property>
    <description>
      URI for NodeAttributeManager. The default value is
      /tmp/hadoop-yarn-${user}/node-attribute/ in the local filesystem.
    </description>
    <name>yarn.node-attribute.fs-store.root-dir</name>
    <value></value>
  </property>

  <property>
    <description>
      Choose different implementation of node attribute's storage
    </description>
    <name>yarn.node-attribute.fs-store.impl.class</name>
    <value>org.apache.hadoop.yarn.server.resourcemanager.nodelabels.FileSystemNodeAttributeStore</value>
  </property>

  <!-- CSI configuration -->
  <property>
    <description>
      CSI driver adaptor addresses on a node manager.
      This configuration will be loaded by the resource manager to initiate
      a client for each adaptor in order to communicate with CSI drivers.
      Note, these addresses should be mapped to the adaptor addresses which
      runs the controller plugin.
    </description>
    <name>yarn.nodemanager.csi-driver-adaptor.addresses</name>
    <value></value>
  </property>

  <property>
    <description>
      CSI driver names running on this node, multiple driver names need to
      be delimited by comma. The driver name should be same value returned
      by the getPluginInfo call.For each of the CSI driver name, it must
      to define following two corresponding properties:
        "yarn.nodemanager.csi-driver.${NAME}.endpoint"
        "yarn.nodemanager.csi-driver-adaptor.${NAME}.address"
      The 1st property defines where the driver's endpoint is;
      2nd property defines where the mapping csi-driver-adaptor's address is.
      What's more, an optional csi-driver-adaptor class can be defined
      for each csi-driver:
        "yarn.nodemanager.csi-driver.${NAME}.class"
      once given, the adaptor will be initiated with the given class instead
      of the default implementation
      org.apache.hadoop.yarn.csi.adaptor.DefaultCsiAdaptorImpl. User can plug
      customized adaptor code for csi-driver with this configuration
      if necessary.
    </description>
    <name>yarn.nodemanager.csi-driver.names</name>
    <value></value>
  </property>

  <property>
    <description>The cleanup interval for activities in milliseconds.</description>
    <name>yarn.resourcemanager.activities-manager.cleanup-interval-ms</name>
    <value>5000</value>
  </property>

  <property>
    <description>Time to live for scheduler activities in milliseconds.</description>
    <name>yarn.resourcemanager.activities-manager.scheduler-activities.ttl-ms</name>
    <value>600000</value>
  </property>

  <property>
    <description>Time to live for app activities in milliseconds.</description>
    <name>yarn.resourcemanager.activities-manager.app-activities.ttl-ms</name>
    <value>600000</value>
  </property>

  <property>
    <description>Max queue length for app activities.</description>
    <name>yarn.resourcemanager.activities-manager.app-activities.max-queue-length</name>
    <value>100</value>
  </property>

  <property>
    <description>
      Containers launcher implementation for determining how containers
      are launched within NodeManagers.
    </description>
    <name>yarn.nodemanager.containers-launcher.class</name>
    <value>org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainersLauncher</value>
  </property>

  <property>
    <description>
      Enable the Pre processing of Application Submission context with server side configuration
    </description>
    <name>yarn.resourcemanager.submission-preprocessor.enabled</name>
    <value>false</value>
  </property>

  <property>
    <description>Path to file with hosts for the submission processor to handle.</description>
    <name>yarn.resourcemanager.submission-preprocessor.file-path</name>
    <value></value>
  </property>

  <property>
    <description>Submission processor refresh interval</description>
    <name>yarn.resourcemanager.submission-preprocessor.file-refresh-interval-ms</name>
    <value>60000</value>
  </property>

  <property>
    <description>
      Comma-separated list of partitions. If a label P is in this list,
      then the RM will enforce that an app has resource requests with label
      P iff that app's node label expression is P.
    </description>
    <name>yarn.node-labels.exclusive-enforced-partitions</name>
    <value></value>
  </property>

  <property>
    <description>
      Prefix used to identify the YARN tag which contains workflow ID. If a tag coming in application
      submission context has this prefix, whatever follows the prefix will be considered as workflow ID
      associated with the application. This configuration is used by features such as workflow priority
      for identifying the workflow associated with an application.
    </description>
    <name>yarn.workflow-id.tag-prefix</name>
    <value>workflowid:</value>
  </property>

  <property>
    <description>Whether or not to allow application submissions via REST. Default is true.</description>
    <name>yarn.webapp.enable-rest-app-submissions</name>
    <value>true</value>
  </property>

   <property>
    <description>
      The maximum number of application attempts. It's a global
      setting for all application masters. Each application master can specify
      its individual maximum number of application attempts via the API, but the
      individual number cannot be more than the global upper bound. If it is,
      the resourcemanager will override it. The default number value is set to
      yarn.resourcemanager.am.max-attempts.
    </description>
    <name>yarn.resourcemanager.am.global.max-attempts</name>
    <value></value>
  </property>

  <property>
    <description>Max number of application tags set by user in ApplicationSubmissionContext
      while submitting application</description>
    <name>yarn.resourcemanager.application.max-tags</name>
    <value>10</value>
  </property>

  <property>
    <description>Max length of each application tag set by user in ApplicationSubmissionContext
      while submitting application.</description>
    <name>yarn.resourcemanager.application.max-tag.length</name>
    <value>100</value>
  </property>
</configuration>




© 2015 - 2024 Weber Informatics LLC | Privacy Policy