当前位置:   article > 正文

默认配置文件 hdfs-default.xml

hdfs-default.xml
<?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 hdfs-site.xml and change them -->
<!-- there.  If hdfs-site.xml does not already exist, create it.      -->

<configuration>

  <property>
    <name>hadoop.hdfs.configuration.version</name>
    <value>1</value>
    <description>version of this configuration file</description>
  </property>

  <property>
    <name>dfs.namenode.rpc-address</name>
    <value></value>
    <description>
      RPC address that handles all clients requests. In the case of HA/Federation where multiple namenodes exist,
      the name service id is added to the name e.g. dfs.namenode.rpc-address.ns1
      dfs.namenode.rpc-address.EXAMPLENAMESERVICE
      The value of this property will take the form of nn-host1:rpc-port. The NameNode's default RPC port is 8020.
    </description>
  </property>

  <property>
    <name>dfs.namenode.rpc-bind-host</name>
    <value></value>
    <description>
      The actual address the RPC server will bind to. If this optional address is
      set, it overrides only the hostname portion of dfs.namenode.rpc-address.
      It can also be specified per name node or name service for HA/Federation.
      This is useful for making the name node listen on all interfaces by
      setting it to 0.0.0.0.
    </description>
  </property>

  <property>
    <name>dfs.namenode.servicerpc-address</name>
    <value></value>
    <description>
      RPC address for HDFS Services communication. BackupNode, Datanodes and all other services should be
      connecting to this address if it is configured. In the case of HA/Federation where multiple namenodes exist,
      the name service id is added to the name e.g. dfs.namenode.servicerpc-address.ns1
      dfs.namenode.rpc-address.EXAMPLENAMESERVICE
      The value of this property will take the form of nn-host1:rpc-port.
      If the value of this property is unset the value of dfs.namenode.rpc-address will be used as the default.
    </description>
  </property>

  <property>
    <name>dfs.namenode.servicerpc-bind-host</name>
    <value></value>
    <description>
      The actual address the service RPC server will bind to. If this optional address is
      set, it overrides only the hostname portion of dfs.namenode.servicerpc-address.
      It can also be specified per name node or name service for HA/Federation.
      This is useful for making the name node listen on all interfaces by
      setting it to 0.0.0.0.
    </description>
  </property>

  <property>
    <name>dfs.namenode.lifeline.rpc-address</name>
    <value></value>
    <description>
      NameNode RPC lifeline address.  This is an optional separate RPC address
      that can be used to isolate health checks and liveness to protect against
      resource exhaustion in the main RPC handler pool.  In the case of
      HA/Federation where multiple NameNodes exist, the name service ID is added
      to the name e.g. dfs.namenode.lifeline.rpc-address.ns1.  The value of this
      property will take the form of nn-host1:rpc-port.  If this property is not
      defined, then the NameNode will not start a lifeline RPC server.  By
      default, the property is not defined.
    </description>
  </property>

  <property>
    <name>dfs.namenode.lifeline.rpc-bind-host</name>
    <value></value>
    <description>
      The actual address the lifeline RPC server will bind to.  If this optional
      address is set, it overrides only the hostname portion of
      dfs.namenode.lifeline.rpc-address.  It can also be specified per name node
      or name service for HA/Federation.  This is useful for making the name node
      listen on all interfaces by setting it to 0.0.0.0.
    </description>
  </property>

  <property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>0.0.0.0:9868</value>
    <description>
      The secondary namenode http server address and port.
    </description>
  </property>

  <property>
    <name>dfs.namenode.secondary.https-address</name>
    <value>0.0.0.0:9869</value>
    <description>
      The secondary namenode HTTPS server address and port.
    </description>
  </property>

  <property>
    <name>dfs.datanode.address</name>
    <value>0.0.0.0:9866</value>
    <description>
      The datanode server address and port for data transfer.
    </description>
  </property>

  <property>
    <name>dfs.datanode.http.address</name>
    <value>0.0.0.0:9864</value>
    <description>
      The datanode http server address and port.
    </description>
  </property>

  <property>
    <name>dfs.datanode.ipc.address</name>
    <value>0.0.0.0:9867</value>
    <description>
      The datanode ipc server address and port.
    </description>
  </property>

  <property>
    <name>dfs.datanode.http.internal-proxy.port</name>
    <value>0</value>
    <description>
      The datanode's internal web proxy port.
      By default it selects a random port available in runtime.
    </description>
  </property>

  <property>
    <name>dfs.datanode.handler.count</name>
    <value>10</value>
    <description>The number of server threads for the datanode.</description>
  </property>

  <property>
    <name>dfs.namenode.http-address</name>
    <value>0.0.0.0:9870</value>
    <description>
      The address and the base port where the dfs namenode web ui will listen on.
    </description>
  </property>

  <property>
    <name>dfs.namenode.http-bind-host</name>
    <value></value>
    <description>
      The actual address the HTTP server will bind to. If this optional address
      is set, it overrides only the hostname portion of dfs.namenode.http-address.
      It can also be specified per name node or name service for HA/Federation.
      This is useful for making the name node HTTP server listen on all
      interfaces by setting it to 0.0.0.0.
    </description>
  </property>

  <property>
    <name>dfs.namenode.heartbeat.recheck-interval</name>
    <value>300000</value>
    <description>
      This time decides the interval to check for expired datanodes.
      With this value and dfs.heartbeat.interval, the interval of
      deciding the datanode is stale or not is also calculated.
      The unit of this configuration is millisecond.
    </description>
  </property>

  <property>
    <name>dfs.http.policy</name>
    <value>HTTP_ONLY</value>
    <description>Decide if HTTPS(SSL) is supported on HDFS
      This configures the HTTP endpoint for HDFS daemons:
        The following values are supported:
        - HTTP_ONLY : Service is provided only on http
        - HTTPS_ONLY : Service is provided only on https
        - HTTP_AND_HTTPS : Service is provided both on http and https
    </description>
  </property>

  <property>
    <name>dfs.client.https.need-auth</name>
    <value>false</value>
    <description>Whether SSL client certificate authentication is required
    </description>
  </property>

  <property>
    <name>dfs.client.cached.conn.retry</name>
    <value>3</value>
    <description>The number of times the HDFS client will pull a socket from the
    cache.  Once this number is exceeded, the client will try to create a new
    socket.
    </description>
  </property>


  <property>
    <name>dfs.https.server.keystore.resource</name>
    <value>ssl-server.xml</value>
    <description>Resource file from which ssl server keystore
    information will be extracted
    </description>
  </property>

  <property>
    <name>dfs.client.https.keystore.resource</name>
    <value>ssl-client.xml</value>
    <description>Resource file from which ssl client keystore
    information will be extracted
    </description>
  </property>

  <property>
    <name>dfs.datanode.https.address</name>
    <value>0.0.0.0:9865</value>
    <description>The datanode secure http server address and port.</description>
  </property>

  <property>
    <name>dfs.namenode.https-address</name>
    <value>0.0.0.0:9871</value>
    <description>The namenode secure http server address and port.</description>
  </property>

  <property>
    <name>dfs.namenode.https-bind-host</name>
    <value></value>
    <description>
      The actual address the HTTPS server will bind to. If this optional address
      is set, it overrides only the hostname portion of dfs.namenode.https-address.
      It can also be specified per name node or name service for HA/Federation.
      This is useful for making the name node HTTPS server listen on all
      interfaces by setting it to 0.0.0.0.
    </description>
  </property>

  <property>
    <name>dfs.datanode.dns.interface</name>
    <value>default</value>
    <description>
      The name of the Network Interface from which a data node should
      report its IP address. e.g. eth2. This setting may be required for some
      multi-homed nodes where the DataNodes are assigned multiple hostnames
      and it is desirable for the DataNodes to use a non-default hostname.

      Prefer using hadoop.security.dns.interface over
      dfs.datanode.dns.interface.
    </description>
  </property>

  <property>
    <name>dfs.datanode.dns.nameserver</name>
    <value>default</value>
    <description>
      The host name or IP address of the name server (DNS) which a DataNode
      should use to determine its own host name.

      Prefer using hadoop.security.dns.nameserver over
      dfs.datanode.dns.nameserver.
    </description>
  </property>

  <property>
    <name>dfs.namenode.backup.address</name>
    <value>0.0.0.0:50100</value>
    <description>
      The backup node server address and port.
      If the port is 0 then the server will start on a free port.
    </description>
  </property>

  <property>
    <name>dfs.namenode.backup.http-address</name>
    <value>0.0.0.0:50105</value>
    <description>
      The backup node http server address and port.
      If the port is 0 then the server will start on a free port.
    </description>
  </property>

  <property>
    <name>dfs.namenode.redundancy.considerLoad</name>
    <value>true</value>
    <description>Decide if chooseTarget considers the target's load or not
    </description>
  </property>

    <property>
      <name>dfs.namenode.redundancy.considerLoad.factor</name>
      <value>2.0</value>
      <description>The factor by which a node's load can exceed the average
        before being rejected for writes, only if considerLoad is true.
      </description>
    </property>

  <property>
    <name>dfs.default.chunk.view.size</name>
    <value>32768</value>
    <description>The number of bytes to view for a file on the browser.
    </description>
  </property>

  <property>
    <name>dfs.datanode.du.reserved.calculator</name>
    <value>org.apache.hadoop.hdfs.server.datanode.fsdataset.impl.ReservedSpaceCalculator$ReservedSpaceCalculatorAbsolute</value>
    <description>Determines the class of ReservedSpaceCalculator to be used for
      calculating disk space reservedfor non-HDFS data. The default calculator is
      ReservedSpaceCalculatorAbsolute which will use dfs.datanode.du.reserved
      for a static reserved number of bytes. ReservedSpaceCalculatorPercentage
      will use dfs.datanode.du.reserved.pct to calculate the reserved number
      of bytes based on the size of the storage. ReservedSpaceCalculatorConservative and
      ReservedSpaceCalculatorAggressive will use their combination, Conservative will use
      maximum, Aggressive minimum. For more details see ReservedSpaceCalculator.
    </description>
  </property>

  <property>
    <name>dfs.datanode.du.reserved</name>
    <value>0</value>
    <description>Reserved space in bytes per volume. Always leave this much space free for non dfs use.
        Specific storage type based reservation is also supported. The property can be followed with
        corresponding storage types ([ssd]/[disk]/[archive]/[ram_disk]) for cluster with heterogeneous storage.
        For example, reserved space for RAM_DISK storage can be configured using property
        'dfs.datanode.du.reserved.ram_disk'. If specific storage type reservation is not configured
        then dfs.datanode.du.reserved will be used.
    </description>
  </property>

  <property>
    <name>dfs.datanode.du.reserved.pct</name>
    <value>0</value>
    <description>Reserved space in percentage. Read dfs.datanode.du.reserved.calculator to see
      when this takes effect. The actual number of bytes reserved will be calculated by using the
      total capacity of the data directory in question. Specific storage type based reservation
      is also supported. The property can be followed with corresponding storage types
      ([ssd]/[disk]/[archive]/[ram_disk]) for cluster with heterogeneous storage.
      For example, reserved percentage space for RAM_DISK storage can be configured using property
      'dfs.datanode.du.reserved.pct.ram_disk'. If specific storage type reservation is not configured
      then dfs.datanode.du.reserved.pct will be used.
    </description>
  </property>

  <property>
    <name>dfs.namenode.name.dir</name>
    <value>file://${hadoop.tmp.dir}/dfs/name</value>
    <description>Determines where on the local filesystem the DFS name node
        should store the name table(fsimage).  If this is a comma-delimited list
        of directories then the name table is replicated in all of the
        directories, for redundancy. </description>
  </property>

  <property>
    <name>dfs.namenode.name.dir.restore</name>
    <value>false</value>
    <description>Set to true to enable NameNode to attempt recovering a
        previously failed dfs.namenode.name.dir. When enabled, a recovery of any
        failed directory is attempted during checkpoint.</description>
  </property>

  <property>
    <name>dfs.namenode.fs-limits.max-component-length</name>
    <value>255</value>
    <description>Defines the maximum number of bytes in UTF-8 encoding in each
        component of a path.  A value of 0 will disable the check.</description>
  </property>

  <property>
    <name>dfs.namenode.fs-limits.max-directory-items</name>
    <value>1048576</value>
    <description>Defines the maximum number of items that a directory may
        contain. Cannot set the property to a value less than 1 or more than
        6400000.</description>
  </property>

  <property>
    <name>dfs.namenode.fs-limits.min-block-size</name>
    <value>1048576</value>
    <description>Minimum block size in bytes, enforced by the Namenode at create
        time. This prevents the accidental creation of files with tiny block
        sizes (and thus many blocks), which can degrade
        performance.</description>
  </property>

  <property>
      <name>dfs.namenode.fs-limits.max-blocks-per-file</name>
      <value>10000</value>
      <description>Maximum number of blocks per file, enforced by the Namenode on
          write. This prevents the creation of extremely large files which can
          degrade performance.</description>
  </property>

  <property>
    <name>dfs.namenode.edits.dir</name>
    <value>${dfs.namenode.name.dir}</value>
    <description>Determines where on the local filesystem the DFS name node
        should store the transaction (edits) file. If this is a comma-delimited list
        of directories then the transaction file is replicated in all of the 
        directories, for redundancy. Default value is same as dfs.namenode.name.dir
    </description>
  </property>

  <property>
    <name>dfs.namenode.edits.dir.required</name>
    <value></value>
    <description>This should be a subset of dfs.namenode.edits.dir,
        to ensure that the transaction (edits) file
        in these places is always up-to-date.
    </description>
  </property>

  <property>
    <name>dfs.namenode.shared.edits.dir</name>
    <value></value>
    <description>A directory on shared storage between the multiple namenodes
    in an HA cluster. This directory will be written by the active and read
    by the standby in order to keep the namespaces synchronized. This directory
    does not need to be listed in dfs.namenode.edits.dir above. It should be
    left empty in a non-HA cluster.
    </description>
  </property>

  <property>
    <name>dfs.namenode.edits.journal-plugin.qjournal</name>
    <value>org.apache.hadoop.hdfs.qjournal.client.QuorumJournalManager</value>
  </property>

  <property>
    <name>dfs.permissions.enabled</name>
    <value>true</value>
    <description>
      If "true", enable permission checking in HDFS.
      If "false", permission checking is turned off,
      but all other behavior is unchanged.
      Switching from one parameter value to the other does not change the mode,
      owner or group of files or directories.
    </description>
  </property>

  <property>
    <name>dfs.permissions.superusergroup</name>
    <value>supergroup</value>
    <description>The name of the group of super-users.
      The value should be a single group name.
    </description>
  </property>

  <property>
    <name>dfs.cluster.administrators</name>
    <value></value>
    <description>ACL for the admins, this configuration is used to control
      who can access the default servlets in the namenode, etc. The value
      should be a comma separated list of users and groups. The user list
      comes first and is separated by a space followed by the group list,
      e.g. "user1,user2 group1,group2". Both users and groups are optional,
      so "user1", " group1", "", "user1 group1", "user1,user2 group1,group2"
      are all valid (note the leading space in " group1"). '*' grants access
      to all users and groups, e.g. '*', '* ' and ' *' are all valid.
    </description>
  </property>

  <property>
    <name>dfs.namenode.acls.enabled</name>
    <value>false</value>
    <description>
      Set to true to enable support for HDFS ACLs (Access Control Lists).  By
      default, ACLs are disabled.  When ACLs are disabled, the NameNode rejects
      all RPCs related to setting or getting ACLs.
    </description>
  </property>

    <property>
      <name>dfs.namenode.posix.acl.inheritance.enabled</name>
      <value>true</value>
      <description>
        Set to true to enable POSIX style ACL inheritance. When it is enabled
        and the create request comes from a compatible client, the NameNode
        will apply default ACLs from the parent directory to the create mode
        and ignore the client umask. If no default ACL found, it will apply the
        client umask.
      </description>
    </property>

    <property>
    <name>dfs.namenode.lazypersist.file.scrub.interval.sec</name>
    <value>300</value>
    <description>
      The NameNode periodically scans the namespace for LazyPersist files with
      missing blocks and unlinks them from the namespace. This configuration key
      controls the interval between successive scans. If this value is set to 0,
      the file scrubber is disabled.
    </description>
  </property>
  <property>
    <name>dfs.block.access.token.enable</name>
    <value>false</value>
    <description>
      If "true", access tokens are used as capabilities for accessing datanodes.
      If "false", no access tokens are checked on accessing datanodes.
    </description>
  </property>

  <property>
    <name>dfs.block.access.key.update.interval</name>
    <value>600</value>
    <description>
      Interval in minutes at which namenode updates its access keys.
    </description>
  </property>

  <property>
    <name>dfs.block.access.token.lifetime</name>
    <value>600</value>
    <description>The lifetime of access tokens in minutes.</description>
  </property>

  <property>
    <name>dfs.block.access.token.protobuf.enable</name>
    <value>false</value>
    <description>
      If "true", block tokens are written using Protocol Buffers.
      If "false", block tokens are written using Legacy format.
    </description>
  </property>

  <property>
    <name>dfs.datanode.data.dir</name>
    <value>file://${hadoop.tmp.dir}/dfs/data</value>
    <description>Determines where on the local filesystem an DFS data node
    should store its blocks.  If this is a comma-delimited
    list of directories, then data will be stored in all named
    directories, typically on different devices. The directories should be tagged
    with corresponding storage types ([SSD]/[DISK]/[ARCHIVE]/[RAM_DISK]) for HDFS
    storage policies. The default storage type will be DISK if the directory does
    not have a storage type tagged explicitly. Directories that do not exist will
    be created if local filesystem permission allows.
    </description>
  </property>

  <property>
    <name>dfs.datanode.data.dir.perm</name>
    <value>700</value>
    <description>Permissions for the directories on on the local filesystem where
    the DFS data node store its blocks. The permissions can either be octal or
    symbolic.</description>
  </property>

  <property>
    <name>dfs.replication</name>
    <value>3</value>
    <description>Default block replication. 
    The actual number of replications can be specified when the file is created.
    The default is used if replication is not specified in create time.
    </description>
  </property>

  <property>
    <name>dfs.replication.max</name>
    <value>512</value>
    <description>Maximal block replication. 
    </description>
  </property>

  <property>
    <name>dfs.namenode.replication.min</name>
    <value>1</value>
    <description>Minimal block replication. 
    </description>
  </property>

  <property>
    <name>dfs.namenode.maintenance.replication.min</name>
    <value>1</value>
    <description>Minimal live block replication in existence of maintenance mode.
    </description>
  </property>

  <property>
    <name>dfs.namenode.safemode.replication.min</name>
    <value></value>
    <description>
        a separate minimum replication factor for calculating safe block count.
        This is an expert level setting.
        Setting this lower than the dfs.namenode.replication.min
        is not recommend and/or dangerous for production setups.
        When it's not set it takes value from dfs.namenode.replication.min
    </description>
  </property>

  <property>
    <name>dfs.namenode.max-corrupt-file-blocks-returned</name>
    <value>100</value>
    <description>
        The maximum number of corrupt file blocks listed by NameNode Web UI,
        JMX and other client request.
    </description>
  </property>

  <property>
    <name>dfs.blocksize</name>
    <value>134217728</value>
    <description>
        The default block size for new files, in bytes.
        You can use the following suffix (case insensitive):
        k(kilo), m(mega), g(giga), t(tera), p(peta), e(exa) to specify the size (such as 128k, 512m, 1g, etc.),
        Or provide complete size in bytes (such as 134217728 for 128 MB).
    </description>
  </property>

  <property>
    <name>dfs.client.block.write.retries</name>
    <value>3</value>
    <description>The number of retries for writing blocks to the data nodes, 
    before we signal failure to the application.
    </description>
  </property>

  <property>
    <name>dfs.client.block.write.replace-datanode-on-failure.enable</name>
    <value>true</value>
    <description>
      If there is a datanode/network failure in the write pipeline,
      DFSClient will try to remove the failed datanode from the pipeline
      and then continue writing with the remaining datanodes. As a result,
      the number of datanodes in the pipeline is decreased.  The feature is
      to add new datanodes to the pipeline.

      This is a site-wide property to enable/disable the feature.

      When the cluster size is extremely small, e.g. 3 nodes or less, cluster
      administrators may want to set the policy to NEVER in the default
      configuration file or disable this feature.  Otherwise, users may
      experience an unusually high rate of pipeline failures since it is
      impossible to find new datanodes for replacement.

      See also dfs.client.block.write.replace-datanode-on-failure.policy
    </description>
  </property>

  <property>
    <name>dfs.client.block.write.replace-datanode-on-failure.policy</name>
    <value>DEFAULT</value>
    <description>
      This property is used only if the value of
      dfs.client.block.write.replace-datanode-on-failure.enable is true.

      ALWAYS: always add a new datanode when an existing datanode is removed.
      
      NEVER: never add a new datanode.

      DEFAULT: 
        Let r be the replication number.
        Let n be the number of existing datanodes.
        Add a new datanode only if r is greater than or equal to 3 and either
        (1) floor(r/2) is greater than or equal to n; or
        (2) r is greater than n and the block is hflushed/appended.
    </description>
  </property>

  <property>
    <name>dfs.client.block.write.replace-datanode-on-failure.best-effort</name>
    <value>false</value>
    <description>
      This property is used only if the value of
      dfs.client.block.write.replace-datanode-on-failure.enable is true.

      Best effort means that the client will try to replace a failed datanode
      in write pipeline (provided that the policy is satisfied), however, it 
      continues the write operation in case that the datanode replacement also
      fails.

      Suppose the datanode replacement fails.
      false: An exception should be thrown so that the write will fail.
      true : The write should be resumed with the remaining datandoes.
    
      Note that setting this property to true allows writing to a pipeline
      with a smaller number of datanodes.  As a result, it increases the
      probability of data loss.
    </description>
  </property>

    <property>
      <name>dfs.client.block.write.replace-datanode-on-failure.min-replication</name>
      <value>0</value>
      <description>
        The minimum number of replications that are needed to not to fail
        the write pipeline if new datanodes can not be found to replace
        failed datanodes (could be due to network failure) in the write pipeline.
        If the number of the remaining datanodes in the write pipeline is greater
        than or equal to this property value, continue writing to the remaining nodes.
        Otherwise throw exception.

        If this is set to 0, an exception will be thrown, when a replacement
        can not be found.
        See also dfs.client.block.write.replace-datanode-on-failure.policy
      </description>
    </property>

  <property>
    <name>dfs.blockreport.intervalMsec</name>
    <value>21600000</value>
    <description>Determines block reporting interval in milliseconds.</description>
  </property>

  <property>
    <name>dfs.blockreport.initialDelay</name>
    <value>0s</value>
    <description>
      Delay for first block report in seconds. Support multiple time unit
      suffix(case insensitive), as described in dfs.heartbeat.interval.
    </description>
  </property>

  <property>
      <name>dfs.blockreport.split.threshold</name>
      <value>1000000</value>
      <description>If the number of blocks on the DataNode is below this
      threshold then it will send block reports for all Storage Directories
      in a single message.

      If the number of blocks exceeds this threshold then the DataNode will
      send block reports for each Storage Directory in separate messages.

      Set to zero to always split.
      </description>
  </property>

  <property>
    <name>dfs.namenode.max.full.block.report.leases</name>
    <value>6</value>
    <description>The maximum number of leases for full block reports that the
      NameNode will issue at any given time.  This prevents the NameNode from
      being flooded with full block reports that use up all the RPC handler
      threads.  This number should never be more than the number of RPC handler
      threads or less than 1.
    </description>
  </property>

  <property>
    <name>dfs.namenode.full.block.report.lease.length.ms</name>
    <value>300000</value>
    <description>
      The number of milliseconds that the NameNode will wait before invalidating
      a full block report lease.  This prevents a crashed DataNode from
      permanently using up a full block report lease.
    </description>
  </property>

  <property>
    <name>dfs.datanode.directoryscan.interval</name>
    <value>21600s</value>
    <description>Interval in seconds for Datanode to scan data directories and
    reconcile the difference between blocks in memory and on the disk.
    Support multiple time unit suffix(case insensitive), as described
    in dfs.heartbeat.interval.
    </description>
  </property>

  <property>
    <name>dfs.datanode.directoryscan.threads</name>
    <value>1</value>
    <description>How many threads should the threadpool used to compile reports
    for volumes in parallel have.
    </description>
  </property>

  <property>
    <name>dfs.datanode.directoryscan.throttle.limit.ms.per.sec</name>
    <value>1000</value>
    <description>The report compilation threads are limited to only running for
    a given number of milliseconds per second, as configured by the
    property. The limit is taken per thread, not in aggregate, e.g. setting
    a limit of 100ms for 4 compiler threads will result in each thread being
    limited to 100ms, not 25ms.

    Note that the throttle does not interrupt the report compiler threads, so the
    actual running time of the threads per second will typically be somewhat
    higher than the throttle limit, usually by no more than 20%.

    Setting this limit to 1000 disables compiler thread throttling. Only
    values between 1 and 1000 are valid. Setting an invalid value will result
    in the throttle being disabled and an error message being logged. 1000 is
    the default setting.
    </description>
  </property>

  <property>
    <name>dfs.heartbeat.interval</name>
    <value>3s</value>
    <description>
      Determines datanode heartbeat interval in seconds.
      Can use the following suffix (case insensitive):
      ms(millis), s(sec), m(min), h(hour), d(day)
      to specify the time (such as 2s, 2m, 1h, etc.).
      Or provide complete number in seconds (such as 30 for 30 seconds).
    </description>
  </property>

  <property>
    <name>dfs.datanode.lifeline.interval.seconds</name>
    <value></value>
    <description>
      Sets the interval in seconds between sending DataNode Lifeline Protocol
      messages from the DataNode to the NameNode.  The value must be greater than
      the value of dfs.heartbeat.interval.  If this property is not defined, then
      the default behavior is to calculate the interval as 3x the value of
      dfs.heartbeat.interval.  Note that normal heartbeat processing may cause the
      DataNode to postpone sending lifeline messages if they are not required.
      Under normal operations with speedy heartbeat processing, it is possible
      that no lifeline messages will need to be sent at all.  This property has no
      effect if dfs.namenode.lifeline.rpc-address is not defined.
    </description>
  </property>

  <property>
    <name>dfs.namenode.handler.count</name>
    <value>10</value>
    <description>The number of Namenode RPC server threads that listen to
    requests from clients.
    If dfs.namenode.servicerpc-address is not configured then
    Namenode RPC server threads listen to requests from all nodes.
    </description>
  </property>

  <property>
    <name>dfs.namenode.service.handler.count</name>
    <value>10</value>
    <description>The number of Namenode RPC server threads that listen to
    requests from DataNodes and from all other non-client nodes.
    dfs.namenode.service.handler.count will be valid only if
    dfs.namenode.servicerpc-address is configured.
    </description>
  </property>

  <property>
    <name>dfs.namenode.lifeline.handler.ratio</name>
    <value>0.10</value>
    <description>
      A ratio applied to the value of dfs.namenode.handler.count, which then
      provides the number of RPC server threads the NameNode runs for handling the
      lifeline RPC server.  For example, if dfs.namenode.handler.count is 100, and
      dfs.namenode.lifeline.handler.factor is 0.10, then the NameNode starts
      100 * 0.10 = 10 threads for handling the lifeline RPC server.  It is common
      to tune the value of dfs.namenode.handler.count as a function of the number
      of DataNodes in a cluster.  Using this property allows for the lifeline RPC
      server handler threads to be tuned automatically without needing to touch a
      separate property.  Lifeline message processing is lightweight, so it is
      expected to require many fewer threads than the main NameNode RPC server.
      This property is not used if dfs.namenode.lifeline.handler.count is defined,
      which sets an absolute thread count.  This property has no effect if
      dfs.namenode.lifeline.rpc-address is not defined.
    </description>
  </property>

  <property>
    <name>dfs.namenode.lifeline.handler.count</name>
    <value></value>
    <description>
      Sets an absolute number of RPC server threads the NameNode runs for handling
      the DataNode Lifeline Protocol and HA health check requests from ZKFC.  If
      this property is defined, then it overrides the behavior of
      dfs.namenode.lifeline.handler.ratio.  By default, it is not defined.  This
      property has no effect if dfs.namenode.lifeline.rpc-address is not defined.
    </description>
  </property>

  <property>
    <name>dfs.namenode.safemode.threshold-pct</name>
    <value>0.999f</value>
    <description>
      Specifies the percentage of blocks that should satisfy 
      the minimal replication requirement defined by dfs.namenode.replication.min.
      Values less than or equal to 0 mean not to wait for any particular
      percentage of blocks before exiting safemode.
      Values greater than 1 will make safe mode permanent.
    </description>
  </property>

  <property>
    <name>dfs.namenode.safemode.min.datanodes</name>
    <value>0</value>
    <description>
      Specifies the number of datanodes that must be considered alive
      before the name node exits safemode.
      Values less than or equal to 0 mean not to take the number of live
      datanodes into account when deciding whether to remain in safe mode
      during startup.
      Values greater than the number of datanodes in the cluster
      will make safe mode permanent.
    </description>
  </property>

  <property>
    <name>dfs.namenode.safemode.extension</name>
    <value>30000</value>
    <description>
      Determines extension of safe mode in milliseconds after the threshold level
      is reached.  Support multiple time unit suffix (case insensitive), as
      described in dfs.heartbeat.interval.
    </description>
  </property>

  <property>
    <name>dfs.namenode.resource.check.interval</name>
    <value>5000</value>
    <description>
      The interval in milliseconds at which the NameNode resource checker runs.
      The checker calculates the number of the NameNode storage volumes whose
      available spaces are more than dfs.namenode.resource.du.reserved, and
      enters safemode if the number becomes lower than the minimum value
      specified by dfs.namenode.resource.checked.volumes.minimum.
    </description>
  </property>

  <property>
    <name>dfs.namenode.resource.du.reserved</name>
    <value>104857600</value>
    <description>
      The amount of space to reserve/require for a NameNode storage directory
      in bytes. The default is 100MB.
    </description>
  </property>

  <property>
    <name>dfs.namenode.resource.checked.volumes</name>
    <value></value>
    <description>
      A list of local directories for the NameNode resource checker to check in
      addition to the local edits directories.
    </description>
  </property>

  <property>
    <name>dfs.namenode.resource.checked.volumes.minimum</name>
    <value>1</value>
    <description>
      The minimum number of redundant NameNode storage volumes required.
    </description>
  </property>

  <property>
    <name>dfs.datanode.balance.bandwidthPerSec</name>
    <value>10m</value>
    <description>
          Specifies the maximum amount of bandwidth that each datanode
          can utilize for the balancing purpose in term of
          the number of bytes per second. You can use the following
          suffix (case insensitive):
          k(kilo), m(mega), g(giga), t(tera), p(peta), e(exa)to specify the size
          (such as 128k, 512m, 1g, etc.).
          Or provide complete size in bytes (such as 134217728 for 128 MB).
    </description>
  </property>

  <property>
    <name>dfs.hosts</name>
    <value></value>
    <description>Names a file that contains a list of hosts that are
    permitted to connect to the namenode. The full pathname of the file
    must be specified.  If the value is empty, all hosts are
    permitted.</description>
  </property>

  <property>
    <name>dfs.hosts.exclude</name>
    <value></value>
    <description>Names a file that contains a list of hosts that are
    not permitted to connect to the namenode.  The full pathname of the
    file must be specified.  If the value is empty, no hosts are
    excluded.</description>
  </property> 

  <property>
    <name>dfs.namenode.max.objects</name>
    <value>0</value>
    <description>The maximum number of files, directories and blocks
    dfs supports. A value of zero indicates no limit to the number
    of objects that dfs supports.
    </description>
  </property>

  <property>
    <name>dfs.namenode.datanode.registration.ip-hostname-check</name>
    <value>true</value>
    <description>
      If true (the default), then the namenode requires that a connecting
      datanode's address must be resolved to a hostname.  If necessary, a reverse
      DNS lookup is performed.  All attempts to register a datanode from an
      unresolvable address are rejected.

      It is recommended that this setting be left on to prevent accidental
      registration of datanodes listed by hostname in the excludes file during a
      DNS outage.  Only set this to false in environments where there is no
      infrastructure to support reverse DNS lookup.
    </description>
  </property>

  <property>
    <name>dfs.namenode.decommission.interval</name>
    <value>30s</value>
    <description>Namenode periodicity in seconds to check if
      decommission or maintenance is complete. Support multiple time unit
      suffix(case insensitive), as described in dfs.heartbeat.interval.
    </description>
  </property>

  <property>
    <name>dfs.namenode.decommission.blocks.per.interval</name>
    <value>500000</value>
    <description>The approximate number of blocks to process per decommission
      or maintenance interval, as defined in dfs.namenode.decommission.interval.
    </description>
  </property>

  <property>
    <name>dfs.namenode.decommission.max.concurrent.tracked.nodes</name>
    <value>100</value>
    <description>
      The maximum number of decommission-in-progress or
      entering-maintenance datanodes nodes that will be tracked at one time by
      the namenode. Tracking these datanode consumes additional NN memory
      proportional to the number of blocks on the datnode. Having a conservative
      limit reduces the potential impact of decommissioning or maintenance of
      a large number of nodes at once.
        
      A value of 0 means no limit will be enforced.
    </description>
  </property>

  <property>
    <name>dfs.namenode.redundancy.interval.seconds</name>
    <value>3s</value>
    <description>The periodicity in seconds with which the namenode computes 
    low redundancy work for datanodes. Support multiple time unit suffix(case insensitive),
    as described in dfs.heartbeat.interval.
    </description>
  </property>

  <property>
    <name>dfs.namenode.accesstime.precision</name>
    <value>3600000</value>
    <description>The access time for HDFS file is precise upto this value. 
                The default value is 1 hour. Setting a value of 0 disables
                access times for HDFS.
    </description>
  </property>

  <property>
    <name>dfs.datanode.plugins</name>
    <value></value>
    <description>Comma-separated list of datanode plug-ins to be activated.
    </description>
  </property>

  <property>
    <name>dfs.namenode.plugins</name>
    <value></value>
    <description>Comma-separated list of namenode plug-ins to be activated.
    </description>
  </property>

  <property>
    <name>dfs.namenode.block-placement-policy.default.prefer-local-node</name>
    <value>true</value>
    <description>Controls how the default block placement policy places
    the first replica of a block. When true, it will prefer the node where
    the client is running.  When false, it will prefer a node in the same rack
    as the client. Setting to false avoids situations where entire copies of
    large files end up on a single node, thus creating hotspots.
    </description>
  </property>


  <property>
    <name>dfs.stream-buffer-size</name>
    <value>4096</value>
    <description>The size of buffer to stream files.
    The size of this buffer should probably be a multiple of hardware
    page size (4096 on Intel x86), and it determines how much data is
    buffered during read and write operations.</description>
  </property>

  <property>
    <name>dfs.bytes-per-checksum</name>
    <value>512</value>
    <description>The number of bytes per checksum.  Must not be larger than
    dfs.stream-buffer-size</description>
  </property>

  <property>
    <name>dfs.client-write-packet-size</name>
    <value>65536</value>
    <description>Packet size for clients to write</description>
  </property>

  <property>
    <name>dfs.client.write.exclude.nodes.cache.expiry.interval.millis</name>
    <value>600000</value>
    <description>The maximum period to keep a DN in the excluded nodes list
    at a client. After this period, in milliseconds, the previously excluded node(s) will
    be removed automatically from the cache and will be considered good for block allocations
    again. Useful to lower or raise in situations where you keep a file open for very long
    periods (such as a Write-Ahead-Log (WAL) file) to make the writer tolerant to cluster maintenance
    restarts. Defaults to 10 minutes.</description>
  </property>

  <property>
    <name>dfs.namenode.checkpoint.dir</name>
    <value>file://${hadoop.tmp.dir}/dfs/namesecondary</value>
    <description>Determines where on the local filesystem the DFS secondary
        name node should store the temporary images to merge.
        If this is a comma-delimited list of directories then the image is
        replicated in all of the directories for redundancy.
    </description>
  </property>

  <property>
    <name>dfs.namenode.checkpoint.edits.dir</name>
    <value>${dfs.namenode.checkpoint.dir}</value>
    <description>Determines where on the local filesystem the DFS secondary
        name node should store the temporary edits to merge.
        If this is a comma-delimited list of directories then the edits is
        replicated in all of the directories for redundancy.
        Default value is same as dfs.namenode.checkpoint.dir
    </description>
  </property>

  <property>
    <name>dfs.namenode.checkpoint.period</name>
    <value>3600s</value>
    <description>
      The number of seconds between two periodic checkpoints.
      Support multiple time unit suffix(case insensitive), as described
      in dfs.heartbeat.interval.
    </description>
  </property>

  <property>
    <name>dfs.namenode.checkpoint.txns</name>
    <value>1000000</value>
    <description>The Secondary NameNode or CheckpointNode will create a checkpoint
    of the namespace every 'dfs.namenode.checkpoint.txns' transactions, regardless
    of whether 'dfs.namenode.checkpoint.period' has expired.
    </description>
  </property>

  <property>
    <name>dfs.namenode.checkpoint.check.period</name>
    <value>60s</value>
    <description>The SecondaryNameNode and CheckpointNode will poll the NameNode
    every 'dfs.namenode.checkpoint.check.period' seconds to query the number
    of uncheckpointed transactions. Support multiple time unit suffix(case insensitive),
    as described in dfs.heartbeat.interval.
    </description>
  </property>

  <property>
    <name>dfs.namenode.checkpoint.max-retries</name>
    <value>3</value>
    <description>The SecondaryNameNode retries failed checkpointing. If the 
    failure occurs while loading fsimage or replaying edits, the number of
    retries is limited by this variable. 
    </description>
  </property>

  <property>
    <name>dfs.namenode.checkpoint.check.quiet-multiplier</name>
    <value>1.5</value>
    <description>
      Used to calculate the amount of time between retries when in the 'quiet' period
      for creating checkpoints (active namenode already has an up-to-date image from another
      checkpointer), so we wait a multiplier of the dfs.namenode.checkpoint.check.period before
      retrying the checkpoint because another node likely is already managing the checkpoints,
      allowing us to save bandwidth to transfer checkpoints that don't need to be used.
    </description>
  </property>

  <property>
    <name>dfs.namenode.num.checkpoints.retained</name>
    <value>2</value>
    <description>The number of image checkpoint files (fsimage_*) that will be retained by
    the NameNode and Secondary NameNode in their storage directories. All edit
    logs (stored on edits_* files) necessary to recover an up-to-date namespace from the oldest retained
    checkpoint will also be retained.
    </description>
  </property>

  <property>
    <name>dfs.namenode.num.extra.edits.retained</name>
    <value>1000000</value>
    <description>The number of extra transactions which should be retained
    beyond what is minimally necessary for a NN restart.
    It does not translate directly to file's age, or the number of files kept,
    but to the number of transactions (here "edits" means transactions).
    One edit file may contain several transactions (edits).
    During checkpoint, NameNode will identify the total number of edits to retain as extra by
    checking the latest checkpoint transaction value, subtracted by the value of this property.
    Then, it scans edits files to identify the older ones that don't include the computed range of
    retained transactions that are to be kept around, and purges them subsequently.
    The retainment can be useful for audit purposes or for an HA setup where a remote Standby Node may have
    been offline for some time and need to have a longer backlog of retained
    edits in order to start again.
    Typically each edit is on the order of a few hundred bytes, so the default
    of 1 million edits should be on the order of hundreds of MBs or low GBs.

    NOTE: Fewer extra edits may be retained than value specified for this setting
    if doing so would mean that more segments would be retained than the number
    configured by dfs.namenode.max.extra.edits.segments.retained.
    </description>
  </property>

  <property>
    <name>dfs.namenode.max.extra.edits.segments.retained</name>
    <value>10000</value>
    <description>The maximum number of extra edit log segments which should be retained
    beyond what is minimally necessary for a NN restart. When used in conjunction with
    dfs.namenode.num.extra.edits.retained, this configuration property serves to cap
    the number of extra edits files to a reasonable value.
    </description>
  </property>

  <property>
    <name>dfs.namenode.delegation.key.update-interval</name>
    <value>86400000</value>
    <description>The update interval for master key for delegation tokens 
        in the namenode in milliseconds.
    </description>
  </property>

  <property>
    <name>dfs.namenode.delegation.token.max-lifetime</name>
    <value>604800000</value>
    <description>The maximum lifetime in milliseconds for which a delegation 
        token is valid.
    </description>
  </property>

  <property>
    <name>dfs.namenode.delegation.token.renew-interval</name>
    <value>86400000</value>
    <description>The renewal interval for delegation token in milliseconds.
    </description>
  </property>

  <property>
    <name>dfs.datanode.failed.volumes.tolerated</name>
    <value>0</value>
    <description>The number of volumes that are allowed to
    fail before a datanode stops offering service. By default
    any volume failure will cause a datanode to shutdown.
    The value should be greater than or equal to -1 , -1 represents minimum
    1 valid volume.
    </description>
  </property>

  <property>
    <name>dfs.datanode.volumes.replica-add.threadpool.size</name>
    <value></value>
    <description>Specifies the maximum number of threads to use for
    adding block in volume. Default value for this configuration is
    max of (volume * number of bp_service, number of processor).
    </description>
  </property>

  <property>
    <name>dfs.image.compress</name>
    <value>false</value>
    <description>Should the dfs image be compressed?
    </description>
  </property>

  <property>
    <name>dfs.image.compression.codec</name>
    <value>org.apache.hadoop.io.compress.DefaultCodec</value>
    <description>If the dfs image is compressed, how should they be compressed?
                This has to be a codec defined in io.compression.codecs.
    </description>
  </property>

  <property>
    <name>dfs.image.transfer.timeout</name>
    <value>60000</value>
    <description>
          Socket timeout for the HttpURLConnection instance used in the image
          transfer. This is measured in milliseconds.
          This timeout prevents client hangs if the connection is idle
          for this configured timeout, during image transfer.
    </description>
  </property>

  <property>
    <name>dfs.image.transfer.bandwidthPerSec</name>
    <value>0</value>
    <description>
          Maximum bandwidth used for regular image transfers (instead of
          bootstrapping the standby namenode), in bytes per second.
          This can help keep normal namenode operations responsive during
          checkpointing.
          A default value of 0 indicates that throttling is disabled.
          The maximum bandwidth used for bootstrapping standby namenode is
          configured with dfs.image.transfer-bootstrap-standby.bandwidthPerSec.
    </description>
  </property>

    <property>
      <name>dfs.image.transfer-bootstrap-standby.bandwidthPerSec</name>
      <value>0</value>
      <description>
        Maximum bandwidth used for transferring image to bootstrap standby
        namenode, in bytes per second.
        A default value of 0 indicates that throttling is disabled. This default
        value should be used in most cases, to ensure timely HA operations.
        The maximum bandwidth used for regular image transfers is configured
        with dfs.image.transfer.bandwidthPerSec.
      </description>
    </property>

  <property>
    <name>dfs.image.transfer.chunksize</name>
    <value>65536</value>
    <description>
          Chunksize in bytes to upload the checkpoint.
          Chunked streaming is used to avoid internal buffering of contents
          of image file of huge size.
    </description>
  </property>

  <property>
    <name>dfs.edit.log.transfer.timeout</name>
    <value>30000</value>
    <description>
      Socket timeout for edit log transfer in milliseconds. This timeout
      should be configured such that normal edit log transfer for journal
      node syncing can complete successfully.
    </description>
  </property>

  <property>
    <name>dfs.edit.log.transfer.bandwidthPerSec</name>
    <value>0</value>
    <description>
      Maximum bandwidth used for transferring edit log to between journal nodes
      for syncing, in bytes per second.
      A default value of 0 indicates that throttling is disabled.
    </description>
  </property>

  <property>
    <name>dfs.namenode.support.allow.format</name>
    <value>true</value>
    <description>Does HDFS namenode allow itself to be formatted?
                You may consider setting this to false for any production
                cluster, to avoid any possibility of formatting a running DFS.
    </description>
  </property>

  <property>
    <name>dfs.datanode.max.transfer.threads</name>
    <value>4096</value>
    <description>
          Specifies the maximum number of threads to use for transferring data
          in and out of the DN.
    </description>
  </property>

  <property>
    <name>dfs.datanode.scan.period.hours</name>
    <value>504</value>
    <description>
          If this is positive, the DataNode will not scan any
          individual block more than once in the specified scan period.
          If this is negative, the block scanner is disabled.
          If this is set to zero, then the default value of 504 hours
          or 3 weeks is used. Prior versions of HDFS incorrectly documented
          that setting this key to zero will disable the block scanner.
    </description>
  </property>

  <property>
    <name>dfs.block.scanner.volume.bytes.per.second</name>
    <value>1048576</value>
    <description>
          If this is 0, the DataNode's block scanner will be disabled.  If this
          is positive, this is the number of bytes per second that the DataNode's
          block scanner will try to scan from each volume.
    </description>
  </property>

  <property>
    <name>dfs.datanode.readahead.bytes</name>
    <value>4194304</value>
    <description>
          While reading block files, if the Hadoop native libraries are available,
          the datanode can use the posix_fadvise system call to explicitly
          page data into the operating system buffer cache ahead of the current
          reader's position. This can improve performance especially when
          disks are highly contended.

          This configuration specifies the number of bytes ahead of the current
          read position which the datanode will attempt to read ahead. This
          feature may be disabled by configuring this property to 0.

          If the native libraries are not available, this configuration has no
          effect.
    </description>
  </property>

  <property>
    <name>dfs.datanode.drop.cache.behind.reads</name>
    <value>false</value>
    <description>
          In some workloads, the data read from HDFS is known to be significantly
          large enough that it is unlikely to be useful to cache it in the
          operating system buffer cache. In this case, the DataNode may be
          configured to automatically purge all data from the buffer cache
          after it is delivered to the client. This behavior is automatically
          disabled for workloads which read only short sections of a block
          (e.g HBase random-IO workloads).

          This may improve performance for some workloads by freeing buffer
          cache space usage for more cacheable data.

          If the Hadoop native libraries are not available, this configuration
          has no effect.
    </description>
  </property>

  <property>
    <name>dfs.datanode.drop.cache.behind.writes</name>
    <value>false</value>
    <description>
          In some workloads, the data written to HDFS is known to be significantly
          large enough that it is unlikely to be useful to cache it in the
          operating system buffer cache. In this case, the DataNode may be
          configured to automatically purge all data from the buffer cache
          after it is written to disk.

          This may improve performance for some workloads by freeing buffer
          cache space usage for more cacheable data.

          If the Hadoop native libraries are not available, this configuration
          has no effect.
    </description>
  </property>

  <property>
    <name>dfs.datanode.sync.behind.writes</name>
    <value>false</value>
    <description>
          If this configuration is enabled, the datanode will instruct the
          operating system to enqueue all written data to the disk immediately
          after it is written. This differs from the usual OS policy which
          may wait for up to 30 seconds before triggering writeback.

          This may improve performance for some workloads by smoothing the
          IO profile for data written to disk.

          If the Hadoop native libraries are not available, this configuration
          has no effect.
    </description>
  </property>

  <property>
    <name>dfs.client.failover.max.attempts</name>
    <value>15</value>
    <description>
      Expert only. The number of client failover attempts that should be
      made before the failover is considered failed.
    </description>
  </property>

  <property>
    <name>dfs.client.failover.sleep.base.millis</name>
    <value>500</value>
    <description>
      Expert only. The time to wait, in milliseconds, between failover
      attempts increases exponentially as a function of the number of
      attempts made so far, with a random factor of +/- 50%. This option
      specifies the base value used in the failover calculation. The
      first failover will retry immediately. The 2nd failover attempt
      will delay at least dfs.client.failover.sleep.base.millis
      milliseconds. And so on.
    </description>
  </property>

  <property>
    <name>dfs.client.failover.sleep.max.millis</name>
    <value>15000</value>
    <description>
      Expert only. The time to wait, in milliseconds, between failover
      attempts increases exponentially as a function of the number of
      attempts made so far, with a random factor of +/- 50%. This option
      specifies the maximum value to wait between failovers. 
      Specifically, the time between two failover attempts will not
      exceed +/- 50% of dfs.client.failover.sleep.max.millis
      milliseconds.
    </description>
  </property>

  <property>
    <name>dfs.client.failover.connection.retries</name>
    <value>0</value>
    <description>
      Expert only. Indicates the number of retries a failover IPC client
      will make to establish a server connection.
    </description>
  </property>

  <property>
    <name>dfs.client.failover.connection.retries.on.timeouts</name>
    <value>0</value>
    <description>
      Expert only. The number of retry attempts a failover IPC client
      will make on socket timeout when establishing a server connection.
    </description>
  </property>

  <property>
    <name>dfs.client.datanode-restart.timeout</name>
    <value>30s</value>
    <description>
      Expert only. The time to wait, in seconds, from reception of an
      datanode shutdown notification for quick restart, until declaring
      the datanode dead and invoking the normal recovery mechanisms.
      The notification is sent by a datanode when it is being shutdown
      using the shutdownDatanode admin command with the upgrade option.
      Support multiple time unit suffix(case insensitive), as described
      in dfs.heartbeat.interval.
    </description>
  </property>

  <property>
    <name>dfs.nameservices</name>
    <value></value>
    <description>
      Comma-separated list of nameservices.
    </description>
  </property>

  <property>
    <name>dfs.nameservice.id</name>
    <value></value>
    <description>
      The ID of this nameservice. If the nameservice ID is not
      configured or more than one nameservice is configured for
      dfs.nameservices it is determined automatically by
      matching the local node's address with the configured address.
    </description>
  </property>

  <property>
    <name>dfs.internal.nameservices</name>
    <value></value>
    <description>
      Comma-separated list of nameservices that belong to this cluster.
      Datanode will report to all the nameservices in this list. By default
      this is set to the value of dfs.nameservices.
    </description>
  </property>

  <property>
    <name>dfs.ha.namenodes.EXAMPLENAMESERVICE</name>
    <value></value>
    <description>
      The prefix for a given nameservice, contains a comma-separated
      list of namenodes for a given nameservice (eg EXAMPLENAMESERVICE).

      Unique identifiers for each NameNode in the nameservice, delimited by
      commas. This will be used by DataNodes to determine all the NameNodes
      in the cluster. For example, if you used “mycluster” as the nameservice
      ID previously, and you wanted to use “nn1” and “nn2” as the individual
      IDs of the NameNodes, you would configure a property
      dfs.ha.namenodes.mycluster, and its value "nn1,nn2".
    </description>
  </property>

  <property>
    <name>dfs.ha.namenode.id</name>
    <value></value>
    <description>
      The ID of this namenode. If the namenode ID is not configured it
      is determined automatically by matching the local node's address
      with the configured address.
    </description>
  </property>

  <property>
    <name>dfs.ha.log-roll.period</name>
    <value>120s</value>
    <description>
      How often, in seconds, the StandbyNode should ask the active to
      roll edit logs. Since the StandbyNode only reads from finalized
      log segments, the StandbyNode will only be as up-to-date as how
      often the logs are rolled. Note that failover triggers a log roll
      so the StandbyNode will be up to date before it becomes active.
      Support multiple time unit suffix(case insensitive), as described
      in dfs.heartbeat.interval.
    </description>
  </property>

  <property>
    <name>dfs.ha.tail-edits.period</name>
    <value>60s</value>
    <description>
      How often, the StandbyNode and ObserverNode should check if there are new
      edit log entries ready to be consumed. This is the minimum period between
      checking; exponential backoff will be applied if no edits are found and
      dfs.ha.tail-edits.period.backoff-max is configured. By default, no
      backoff is applied.
      Supports multiple time unit suffix (case insensitive), as described
      in dfs.heartbeat.interval.
    </description>
  </property>

  <property>
    <name>dfs.ha.tail-edits.period.backoff-max</name>
    <value>0</value>
    <description>
      The maximum time the tailer should wait between checking for new edit log
      entries. Exponential backoff will be applied when an edit log tail is
      performed but no edits are available to be read. Values less than or
      equal to zero disable backoff entirely; this is the default behavior.
      Supports multiple time unit suffix (case insensitive), as described
      in dfs.heartbeat.interval.
    </description>
  </property>

  <property>
    <name>dfs.ha.tail-edits.namenode-retries</name>
    <value>3</value>
    <description>
      Number of retries to use when contacting the namenode when tailing the log.
    </description>
  </property>

  <property>
    <name>dfs.ha.tail-edits.rolledits.timeout</name>
    <value>60</value>
    <description>The timeout in seconds of calling rollEdits RPC on Active NN.
    </description>
  </property>

  <property>
    <name>dfs.ha.automatic-failover.enabled</name>
    <value>false</value>
    <description>
      Whether automatic failover is enabled. See the HDFS High
      Availability documentation for details on automatic HA
      configuration.
    </description>
  </property>

  <property>
    <name>dfs.client.use.datanode.hostname</name>
    <value>false</value>
    <description>Whether clients should use datanode hostnames when
      connecting to datanodes.
    </description>
  </property>

  <property>
    <name>dfs.datanode.use.datanode.hostname</name>
    <value>false</value>
    <description>Whether datanodes should use datanode hostnames when
      connecting to other datanodes for data transfer.
    </description>
  </property>

  <property>
    <name>dfs.client.local.interfaces</name>
    <value></value>
    <description>A comma separated list of network interface names to use
      for data transfer between the client and datanodes. When creating
      a connection to read from or write to a datanode, the client
      chooses one of the specified interfaces at random and binds its
      socket to the IP of that interface. Individual names may be
      specified as either an interface name (eg "eth0"), a subinterface
      name (eg "eth0:0"), or an IP address (which may be specified using
      CIDR notation to match a range of IPs).
    </description>
  </property>

  <property>
    <name>dfs.datanode.shared.file.descriptor.paths</name>
    <value>/dev/shm,/tmp</value>
    <description>
      A comma-separated list of paths to use when creating file descriptors that
      will be shared between the DataNode and the DFSClient.  Typically we use
      /dev/shm, so that the file descriptors will not be written to disk.
      It tries paths in order until creation of shared memory segment succeeds.
    </description>
  </property>

  <property>
    <name>dfs.short.circuit.shared.memory.watcher.interrupt.check.ms</name>
    <value>60000</value>
    <description>
      The length of time in milliseconds that the short-circuit shared memory
      watcher will go between checking for java interruptions sent from other
      threads.  This is provided mainly for unit tests.
    </description>
  </property>

  <property>
    <name>dfs.namenode.kerberos.principal</name>
    <value></value>
    <description>
      The NameNode service principal. This is typically set to
      nn/_HOST@REALM.TLD. Each NameNode will substitute _HOST with its
      own fully qualified hostname at startup. The _HOST placeholder
      allows using the same configuration setting on both NameNodes
      in an HA setup.
    </description>
  </property>

  <property>
    <name>dfs.namenode.keytab.file</name>
    <value></value>
    <description>
      The keytab file used by each NameNode daemon to login as its
      service principal. The principal name is configured with
      dfs.namenode.kerberos.principal.
    </description>
  </property>

  <property>
    <name>dfs.datanode.kerberos.principal</name>
    <value></value>
    <description>
      The DataNode service principal. This is typically set to
      dn/_HOST@REALM.TLD. Each DataNode will substitute _HOST with its
      own fully qualified hostname at startup. The _HOST placeholder
      allows using the same configuration setting on all DataNodes.
    </description>
  </property>

  <property>
    <name>dfs.datanode.keytab.file</name>
    <value></value>
    <description>
      The keytab file used by each DataNode daemon to login as its
      service principal. The principal name is configured with
      dfs.datanode.kerberos.principal.
    </description>
  </property>

  <property>
    <name>dfs.journalnode.kerberos.principal</name>
    <value></value>
    <description>
      The JournalNode service principal. This is typically set to
      jn/_HOST@REALM.TLD. Each JournalNode will substitute _HOST with its
      own fully qualified hostname at startup. The _HOST placeholder
      allows using the same configuration setting on all JournalNodes.
    </description>
  </property>

  <property>
    <name>dfs.journalnode.keytab.file</name>
    <value></value>
    <description>
      The keytab file used by each JournalNode daemon to login as its
      service principal. The principal name is configured with
      dfs.journalnode.kerberos.principal.
    </description>
  </property>

  <property>
    <name>dfs.namenode.kerberos.internal.spnego.principal</name>
    <value>${dfs.web.authentication.kerberos.principal}</value>
    <description>
      The server principal used by the NameNode for web UI SPNEGO
      authentication when Kerberos security is enabled. This is
      typically set to HTTP/_HOST@REALM.TLD The SPNEGO server principal
      begins with the prefix HTTP/ by convention.

      If the value is '*', the web server will attempt to login with
      every principal specified in the keytab file
      dfs.web.authentication.kerberos.keytab.
  </description>
  </property>

  <property>
    <name>dfs.journalnode.kerberos.internal.spnego.principal</name>
    <value></value>
    <description>
      The server principal used by the JournalNode HTTP Server for
      SPNEGO authentication when Kerberos security is enabled. This is
      typically set to HTTP/_HOST@REALM.TLD. The SPNEGO server principal
      begins with the prefix HTTP/ by convention.

      If the value is '*', the web server will attempt to login with
      every principal specified in the keytab file
      dfs.web.authentication.kerberos.keytab.

      For most deployments this can be set to ${dfs.web.authentication.kerberos.principal}
      i.e use the value of dfs.web.authentication.kerberos.principal.
    </description>
  </property>

  <property>
    <name>dfs.secondary.namenode.kerberos.internal.spnego.principal</name>
    <value>${dfs.web.authentication.kerberos.principal}</value>
    <description>
      The server principal used by the Secondary NameNode for web UI SPNEGO
      authentication when Kerberos security is enabled. Like all other
      Secondary NameNode settings, it is ignored in an HA setup.

      If the value is '*', the web server will attempt to login with
      every principal specified in the keytab file
      dfs.web.authentication.kerberos.keytab.
    </description>
  </property>

  <property>
    <name>dfs.web.authentication.kerberos.principal</name>
    <value></value>
    <description>
      The server principal used by the NameNode for WebHDFS SPNEGO
      authentication.

      Required when WebHDFS and security are enabled. In most secure clusters this
      setting is also used to specify the values for
      dfs.namenode.kerberos.internal.spnego.principal and
      dfs.journalnode.kerberos.internal.spnego.principal.
    </description>
  </property>

  <property>
    <name>dfs.web.authentication.kerberos.keytab</name>
    <value></value>
    <description>
      The keytab file for the principal corresponding to
      dfs.web.authentication.kerberos.principal.
    </description>
  </property>

  <property>
    <name>dfs.namenode.kerberos.principal.pattern</name>
    <value>*</value>
    <description>
      A client-side RegEx that can be configured to control
      allowed realms to authenticate with (useful in cross-realm env.)
    </description>
  </property>

  <property>
    <name>dfs.namenode.avoid.read.stale.datanode</name>
    <value>false</value>
    <description>
      Indicate whether or not to avoid reading from &quot;stale&quot; datanodes whose
      heartbeat messages have not been received by the namenode 
      for more than a specified time interval. Stale datanodes will be
      moved to the end of the node list returned for reading. See
      dfs.namenode.avoid.write.stale.datanode for a similar setting for writes.
    </description>
  </property>

  <property>
    <name>dfs.namenode.avoid.write.stale.datanode</name>
    <value>false</value>
    <description>
      Indicate whether or not to avoid writing to &quot;stale&quot; datanodes whose 
      heartbeat messages have not been received by the namenode 
      for more than a specified time interval. Writes will avoid using 
      stale datanodes unless more than a configured ratio 
      (dfs.namenode.write.stale.datanode.ratio) of datanodes are marked as 
      stale. See dfs.namenode.avoid.read.stale.datanode for a similar setting
      for reads.
    </description>
  </property>

  <property>
    <name>dfs.namenode.stale.datanode.interval</name>
    <value>30000</value>
    <description>
      Default time interval in milliseconds for marking a datanode as "stale",
      i.e., if the namenode has not received heartbeat msg from a datanode for
      more than this time interval, the datanode will be marked and treated 
      as "stale" by default. The stale interval cannot be too small since 
      otherwise this may cause too frequent change of stale states. 
      We thus set a minimum stale interval value (the default value is 3 times 
      of heartbeat interval) and guarantee that the stale interval cannot be less
      than the minimum value. A stale data node is avoided during lease/block
      recovery. It can be conditionally avoided for reads (see
      dfs.namenode.avoid.read.stale.datanode) and for writes (see
      dfs.namenode.avoid.write.stale.datanode).
    </description>
  </property>

  <property>
    <name>dfs.namenode.write.stale.datanode.ratio</name>
    <value>0.5f</value>
    <description>
      When the ratio of number stale datanodes to total datanodes marked
      is greater than this ratio, stop avoiding writing to stale nodes so
      as to prevent causing hotspots.
    </description>
  </property>

  <property>
    <name>dfs.namenode.invalidate.work.pct.per.iteration</name>
    <value>0.32f</value>
    <description>
      *Note*: Advanced property. Change with caution.
      This determines the percentage amount of block
      invalidations (deletes) to do over a single DN heartbeat
      deletion command. The final deletion count is determined by applying this
      percentage to the number of live nodes in the system.
      The resultant number is the number of blocks from the deletion list
      chosen for proper invalidation over a single heartbeat of a single DN.
      Value should be a positive, non-zero percentage in float notation (X.Yf),
      with 1.0f meaning 100%.
    </description>
  </property>

  <property>
    <name>dfs.namenode.replication.work.multiplier.per.iteration</name>
    <value>2</value>
    <description>
      *Note*: Advanced property. Change with caution.
      This determines the total amount of block transfers to begin in
      parallel at a DN, for replication, when such a command list is being
      sent over a DN heartbeat by the NN. The actual number is obtained by
      multiplying this multiplier with the total number of live nodes in the
      cluster. The result number is the number of blocks to begin transfers
      immediately for, per DN heartbeat. This number can be any positive,
      non-zero integer.
    </description>
  </property>

  <property>
    <name>nfs.server.port</name>
    <value>2049</value>
    <description>
        Specify the port number used by Hadoop NFS.
    </description>
  </property>

  <property>
    <name>nfs.mountd.port</name>
    <value>4242</value>
    <description>
        Specify the port number used by Hadoop mount daemon.
    </description>
  </property>

  <property>    
    <name>nfs.dump.dir</name>
    <value>/tmp/.hdfs-nfs</value>
    <description>
      This directory is used to temporarily save out-of-order writes before
      writing to HDFS. For each file, the out-of-order writes are dumped after
      they are accumulated to exceed certain threshold (e.g., 1MB) in memory. 
      One needs to make sure the directory has enough space.
    </description>
  </property>

  <property>
    <name>nfs.rtmax</name>
    <value>1048576</value>
    <description>This is the maximum size in bytes of a READ request
      supported by the NFS gateway. If you change this, make sure you
      also update the nfs mount's rsize(add rsize= # of bytes to the 
      mount directive).
    </description>
  </property>

  <property>
    <name>nfs.wtmax</name>
    <value>1048576</value>
    <description>This is the maximum size in bytes of a WRITE request
      supported by the NFS gateway. If you change this, make sure you
      also update the nfs mount's wsize(add wsize= # of bytes to the 
      mount directive).
    </description>
  </property>

  <property>
    <name>nfs.keytab.file</name>
    <value></value>
    <description>
      *Note*: Advanced property. Change with caution.
      This is the path to the keytab file for the hdfs-nfs gateway.
      This is required when the cluster is kerberized.
    </description>
  </property>

  <property>
    <name>nfs.kerberos.principal</name>
    <value></value>
    <description>
      *Note*: Advanced property. Change with caution.
      This is the name of the kerberos principal. This is required when
      the cluster is kerberized.It must be of this format:
      nfs-gateway-user/nfs-gateway-host@kerberos-realm
    </description>
  </property>

  <property>
    <name>nfs.allow.insecure.ports</name>
    <value>true</value>
    <description>
      When set to false, client connections originating from unprivileged ports
      (those above 1023) will be rejected. This is to ensure that clients
      connecting to this NFS Gateway must have had root privilege on the machine
      where they're connecting from.
    </description>
  </property>

  <property>
    <name>hadoop.fuse.connection.timeout</name>
    <value>300</value>
    <description>
      The minimum number of seconds that we'll cache libhdfs connection objects
      in fuse_dfs. Lower values will result in lower memory consumption; higher
      values may speed up access by avoiding the overhead of creating new
      connection objects.
    </description>
  </property>

  <property>
    <name>hadoop.fuse.timer.period</name>
    <value>5</value>
    <description>
      The number of seconds between cache expiry checks in fuse_dfs. Lower values
      will result in fuse_dfs noticing changes to Kerberos ticket caches more
      quickly.
    </description>
  </property>

  <property>
    <name>dfs.namenode.metrics.logger.period.seconds</name>
    <value>600</value>
    <description>
      This setting controls how frequently the NameNode logs its metrics. The
      logging configuration must also define one or more appenders for
      NameNodeMetricsLog for the metrics to be logged.
      NameNode metrics logging is disabled if this value is set to zero or
      less than zero.
    </description>
  </property>

  <property>
    <name>dfs.datanode.metrics.logger.period.seconds</name>
    <value>600</value>
    <description>
      This setting controls how frequently the DataNode logs its metrics. The
      logging configuration must also define one or more appenders for
      DataNodeMetricsLog for the metrics to be logged.
      DataNode metrics logging is disabled if this value is set to zero or
      less than zero.
    </description>
  </property>

  <property>
    <name>dfs.metrics.percentiles.intervals</name>
    <value></value>
    <description>
      Comma-delimited set of integers denoting the desired rollover intervals 
      (in seconds) for percentile latency metrics on the Namenode and Datanode.
      By default, percentile latency metrics are disabled.
    </description>
  </property>

  <property>
    <name>dfs.datanode.peer.stats.enabled</name>
    <value>false</value>
    <description>
      A switch to turn on/off tracking DataNode peer statistics.
    </description>
  </property>

    <property>
      <name>dfs.datanode.peer.metrics.min.outlier.detection.samples</name>
      <value>1000</value>
      <description>
        Minimum number of packet send samples which are required to qualify for outlier detection.
        If the number of samples is below this then outlier detection is skipped.
      </description>
    </property>

  <property>
    <name>dfs.datanode.outliers.report.interval</name>
    <value>30m</value>
    <description>
      This setting controls how frequently DataNodes will report their peer
      latencies to the NameNode via heartbeats.  This setting supports
      multiple time unit suffixes as described in dfs.heartbeat.interval.
      If no suffix is specified then milliseconds is assumed.

      It is ignored if dfs.datanode.peer.stats.enabled is false.
    </description>
  </property>

  <property>
    <name>dfs.datanode.fileio.profiling.sampling.percentage</name>
    <value>0</value>
    <description>
      This setting controls the percentage of file I/O events which will be
      profiled for DataNode disk statistics. The default value of 0 disables
      disk statistics. Set to an integer value between 1 and 100 to enable disk
      statistics.
    </description>
  </property>

  <property>
    <name>hadoop.user.group.metrics.percentiles.intervals</name>
    <value></value>
    <description>
      A comma-separated list of the granularity in seconds for the metrics
      which describe the 50/75/90/95/99th percentile latency for group resolution
      in milliseconds.
      By default, percentile latency metrics are disabled.
    </description>
  </property>

  <property>
    <name>dfs.encrypt.data.transfer</name>
    <value>false</value>
    <description>
      Whether or not actual block data that is read/written from/to HDFS should
      be encrypted on the wire. This only needs to be set on the NN and DNs,
      clients will deduce this automatically. It is possible to override this setting 
      per connection by specifying custom logic via dfs.trustedchannel.resolver.class. 
    </description>
  </property>

  <property>
    <name>dfs.encrypt.data.transfer.algorithm</name>
    <value></value>
    <description>
      This value may be set to either "3des" or "rc4". If nothing is set, then
      the configured JCE default on the system is used (usually 3DES.) It is
      widely believed that 3DES is more cryptographically secure, but RC4 is
      substantially faster.
      
      Note that if AES is supported by both the client and server then this 
      encryption algorithm will only be used to initially transfer keys for AES.
      (See dfs.encrypt.data.transfer.cipher.suites.)
    </description>
  </property>

  <property>
    <name>dfs.encrypt.data.transfer.cipher.suites</name>
    <value></value>
    <description>
      This value may be either undefined or AES/CTR/NoPadding.  If defined, then
      dfs.encrypt.data.transfer uses the specified cipher suite for data
      encryption.  If not defined, then only the algorithm specified in
      dfs.encrypt.data.transfer.algorithm is used.  By default, the property is
      not defined.
    </description>
  </property>

  <property>
    <name>dfs.encrypt.data.transfer.cipher.key.bitlength</name>
    <value>128</value>
    <description>
      The key bitlength negotiated by dfsclient and datanode for encryption.
      This value may be set to either 128, 192 or 256.
    </description>
  </property>

  <property>
    <name>dfs.trustedchannel.resolver.class</name>
    <value></value>
    <description>
        TrustedChannelResolver is used to determine whether a channel 
        is trusted for plain data transfer. The TrustedChannelResolver is
        invoked on both client and server side. If the resolver indicates 
        that the channel is trusted, then the data transfer will not be 
        encrypted even if dfs.encrypt.data.transfer is set to true. The
        default implementation returns false indicating that the channel 
        is not trusted.
    </description>
  </property>

  <property>
    <name>dfs.data.transfer.protection</name>
    <value></value>
    <description>
      A comma-separated list of SASL protection values used for secured
      connections to the DataNode when reading or writing block data.  Possible
      values are authentication, integrity and privacy.  authentication means
      authentication only and no integrity or privacy; integrity implies
      authentication and integrity are enabled; and privacy implies all of
      authentication, integrity and privacy are enabled.  If
      dfs.encrypt.data.transfer is set to true, then it supersedes the setting for
      dfs.data.transfer.protection and enforces that all connections must use a
      specialized encrypted SASL handshake.  This property is ignored for
      connections to a DataNode listening on a privileged port.  In this case, it
      is assumed that the use of a privileged port establishes sufficient trust.
    </description>
  </property>

  <property>
    <name>dfs.data.transfer.saslproperties.resolver.class</name>
    <value></value>
    <description>
      SaslPropertiesResolver used to resolve the QOP used for a connection to the
      DataNode when reading or writing block data. If not specified, the value of
      hadoop.security.saslproperties.resolver.class is used as the default value.
    </description>
  </property>

  <property>
    <name>dfs.journalnode.rpc-address</name>
    <value>0.0.0.0:8485</value>
    <description>
      The JournalNode RPC server address and port.
    </description>
  </property>

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

  <property>
    <name>dfs.journalnode.http-address</name>
    <value>0.0.0.0:8480</value>
    <description>
      The address and port the JournalNode HTTP server listens on.
      If the port is 0 then the server will start on a free port.
    </description>
  </property>

  <property>
    <name>dfs.journalnode.http-bind-host</name>
    <value></value>
    <description>
      The actual address the HTTP server will bind to. If this optional address
      is set, it overrides only the hostname portion of
      dfs.journalnode.http-address. This is useful for making the JournalNode
      HTTP server listen on allinterfaces by setting it to 0.0.0.0.
    </description>
  </property>

  <property>
    <name>dfs.journalnode.https-address</name>
    <value>0.0.0.0:8481</value>
    <description>
      The address and port the JournalNode HTTPS server listens on.
      If the port is 0 then the server will start on a free port.
    </description>
  </property>

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

  <property>
    <name>dfs.namenode.audit.loggers</name>
    <value>default</value>
    <description>
      List of classes implementing audit loggers that will receive audit events.
      These should be implementations of org.apache.hadoop.hdfs.server.namenode.AuditLogger.
      The special value "default" can be used to reference the default audit
      logger, which uses the configured log system. Installing custom audit loggers
      may affect the performance and stability of the NameNode. Refer to the custom
      logger's documentation for more details.
    </description>
  </property>

  <property>
    <name>dfs.datanode.available-space-volume-choosing-policy.balanced-space-threshold</name>
    <value>10737418240</value> <!-- 10 GB -->
    <description>
      Only used when the dfs.datanode.fsdataset.volume.choosing.policy is set to
      org.apache.hadoop.hdfs.server.datanode.fsdataset.AvailableSpaceVolumeChoosingPolicy.
      This setting controls how much DN volumes are allowed to differ in terms of
      bytes of free disk space before they are considered imbalanced. If the free
      space of all the volumes are within this range of each other, the volumes
      will be considered balanced and block assignments will be done on a pure
      round robin basis.
    </description>
  </property>

  <property>
    <name>dfs.datanode.available-space-volume-choosing-policy.balanced-space-preference-fraction</name>
    <value>0.75f</value>
    <description>
      Only used when the dfs.datanode.fsdataset.volume.choosing.policy is set to
      org.apache.hadoop.hdfs.server.datanode.fsdataset.AvailableSpaceVolumeChoosingPolicy.
      This setting controls what percentage of new block allocations will be sent
      to volumes with more available disk space than others. This setting should
      be in the range 0.0 - 1.0, though in practice 0.5 - 1.0, since there should
      be no reason to prefer that volumes with less available disk space receive
      more block allocations.
    </description>
  </property>

  <property>
    <name>dfs.namenode.edits.noeditlogchannelflush</name>
    <value>false</value>
    <description>
      Specifies whether to flush edit log file channel. When set, expensive
      FileChannel#force calls are skipped and synchronous disk writes are
      enabled instead by opening the edit log file with RandomAccessFile("rws")
      flags. This can significantly improve the performance of edit log writes
      on the Windows platform.
      Note that the behavior of the "rws" flags is platform and hardware specific
      and might not provide the same level of guarantees as FileChannel#force.
      For example, the write will skip the disk-cache on SAS and SCSI devices
      while it might not on SATA devices. This is an expert level setting,
      change with caution.
    </description>
  </property>

  <property>
    <name>dfs.client.cache.drop.behind.writes</name>
    <value></value>
    <description>
      Just like dfs.datanode.drop.cache.behind.writes, this setting causes the
      page cache to be dropped behind HDFS writes, potentially freeing up more
      memory for other uses.  Unlike dfs.datanode.drop.cache.behind.writes, this
      is a client-side setting rather than a setting for the entire datanode.
      If present, this setting will override the DataNode default.

      If the native libraries are not available to the DataNode, this
      configuration has no effect.
    </description>
  </property>

  <property>
    <name>dfs.client.cache.drop.behind.reads</name>
    <value></value>
    <description>
      Just like dfs.datanode.drop.cache.behind.reads, this setting causes the
      page cache to be dropped behind HDFS reads, potentially freeing up more
      memory for other uses.  Unlike dfs.datanode.drop.cache.behind.reads, this
      is a client-side setting rather than a setting for the entire datanode.  If
      present, this setting will override the DataNode default.

      If the native libraries are not available to the DataNode, this
      configuration has no effect.
    </description>
  </property>

  <property>
    <name>dfs.client.cache.readahead</name>
    <value></value>
    <description>
      When using remote reads, this setting causes the datanode to
      read ahead in the block file using posix_fadvise, potentially decreasing
      I/O wait times.  Unlike dfs.datanode.readahead.bytes, this is a client-side
      setting rather than a setting for the entire datanode.  If present, this
      setting will override the DataNode default.

      When using local reads, this setting determines how much readahead we do in
      BlockReaderLocal.

      If the native libraries are not available to the DataNode, this
      configuration has no effect.
    </description>
  </property>

  <property>
    <name>dfs.client.server-defaults.validity.period.ms</name>
    <value>3600000</value>
    <description>
      The amount of milliseconds after which cached server defaults are updated.

      By default this parameter is set to 1 hour.
    </description>
  </property>

  <property>
    <name>dfs.namenode.enable.retrycache</name>
    <value>true</value>
    <description>
      This enables the retry cache on the namenode. Namenode tracks for
      non-idempotent requests the corresponding response. If a client retries the
      request, the response from the retry cache is sent. Such operations
      are tagged with annotation @AtMostOnce in namenode protocols. It is
      recommended that this flag be set to true. Setting it to false, will result
      in clients getting failure responses to retried request. This flag must 
      be enabled in HA setup for transparent fail-overs.

      The entries in the cache have expiration time configurable
      using dfs.namenode.retrycache.expirytime.millis.
    </description>
  </property>

  <property>
    <name>dfs.namenode.retrycache.expirytime.millis</name>
    <value>600000</value>
    <description>
      The time for which retry cache entries are retained.
    </description>
  </property>

  <property>
    <name>dfs.namenode.retrycache.heap.percent</name>
    <value>0.03f</value>
    <description>
      This parameter configures the heap size allocated for retry cache
      (excluding the response cached). This corresponds to approximately
      4096 entries for every 64MB of namenode process java heap size.
      Assuming retry cache entry expiration time (configured using
      dfs.namenode.retrycache.expirytime.millis) of 10 minutes, this
      enables retry cache to support 7 operations per second sustained
      for 10 minutes. As the heap size is increased, the operation rate
      linearly increases.
    </description>
  </property>

  <property>
    <name>dfs.client.mmap.enabled</name>
    <value>true</value>
    <description>
      If this is set to false, the client won't attempt to perform memory-mapped reads.
    </description>
  </property>

  <property>
    <name>dfs.client.mmap.cache.size</name>
    <value>256</value>
    <description>
      When zero-copy reads are used, the DFSClient keeps a cache of recently used
      memory mapped regions.  This parameter controls the maximum number of
      entries that we will keep in that cache.

      The larger this number is, the more file descriptors we will potentially
      use for memory-mapped files.  mmaped files also use virtual address space.
      You may need to increase your ulimit virtual address space limits before
      increasing the client mmap cache size.

      Note that you can still do zero-copy reads when this size is set to 0.
    </description>
  </property>

  <property>
    <name>dfs.client.mmap.cache.timeout.ms</name>
    <value>3600000</value>
    <description>
      The minimum length of time that we will keep an mmap entry in the cache
      between uses.  If an entry is in the cache longer than this, and nobody
      uses it, it will be removed by a background thread.
    </description>
  </property>

  <property>
    <name>dfs.client.mmap.retry.timeout.ms</name>
    <value>300000</value>
    <description>
      The minimum amount of time that we will wait before retrying a failed mmap
      operation.
    </description>
  </property>

  <property>
    <name>dfs.client.short.circuit.replica.stale.threshold.ms</name>
    <value>1800000</value>
    <description>
      The maximum amount of time that we will consider a short-circuit replica to
      be valid, if there is no communication from the DataNode.  After this time
      has elapsed, we will re-fetch the short-circuit replica even if it is in
      the cache.
    </description>
  </property>

  <property>
    <name>dfs.namenode.path.based.cache.block.map.allocation.percent</name>
    <value>0.25</value>
    <description>
      The percentage of the Java heap which we will allocate to the cached blocks
      map.  The cached blocks map is a hash map which uses chained hashing.
      Smaller maps may be accessed more slowly if the number of cached blocks is
      large; larger maps will consume more memory.
    </description>
  </property>

  <property>
    <name>dfs.datanode.max.locked.memory</name>
    <value>0</value>
    <description>
      The amount of memory in bytes to use for caching of block replicas in
      memory on the datanode. The datanode's maximum locked memory soft ulimit
      (RLIMIT_MEMLOCK) must be set to at least this value, else the datanode
      will abort on startup.

      By default, this parameter is set to 0, which disables in-memory caching.

      If the native libraries are not available to the DataNode, this
      configuration has no effect.
    </description>
  </property>

  <property>
    <name>dfs.namenode.list.cache.directives.num.responses</name>
    <value>100</value>
    <description>
      This value controls the number of cache directives that the NameNode will
      send over the wire in response to a listDirectives RPC.
    </description>
  </property>

  <property>
    <name>dfs.namenode.list.cache.pools.num.responses</name>
    <value>100</value>
    <description>
      This value controls the number of cache pools that the NameNode will
      send over the wire in response to a listPools RPC.
    </description>
  </property>

  <property>
    <name>dfs.namenode.path.based.cache.refresh.interval.ms</name>
    <value>30000</value>
    <description>
      The amount of milliseconds between subsequent path cache rescans.  Path
      cache rescans are when we calculate which blocks should be cached, and on
      what datanodes.

      By default, this parameter is set to 30 seconds.
    </description>
  </property>

  <property>
    <name>dfs.namenode.path.based.cache.retry.interval.ms</name>
    <value>30000</value>
    <description>
      When the NameNode needs to uncache something that is cached, or cache
      something that is not cached, it must direct the DataNodes to do so by
      sending a DNA_CACHE or DNA_UNCACHE command in response to a DataNode
      heartbeat.  This parameter controls how frequently the NameNode will
      resend these commands.
    </description>
  </property>

  <property>
    <name>dfs.datanode.fsdatasetcache.max.threads.per.volume</name>
    <value>4</value>
    <description>
      The maximum number of threads per volume to use for caching new data
      on the datanode. These threads consume both I/O and CPU. This can affect
      normal datanode operations.
    </description>
  </property>

  <property>
    <name>dfs.cachereport.intervalMsec</name>
    <value>10000</value>
    <description>
      Determines cache reporting interval in milliseconds.  After this amount of
      time, the DataNode sends a full report of its cache state to the NameNode.
      The NameNode uses the cache report to update its map of cached blocks to
      DataNode locations.

      This configuration has no effect if in-memory caching has been disabled by
      setting dfs.datanode.max.locked.memory to 0 (which is the default).

      If the native libraries are not available to the DataNode, this
      configuration has no effect.
    </description>
  </property>

  <property>
    <name>dfs.namenode.edit.log.autoroll.multiplier.threshold</name>
    <value>0.5</value>
    <description>
      Determines when an active namenode will roll its own edit log.
      The actual threshold (in number of edits) is determined by multiplying
      this value by dfs.namenode.checkpoint.txns.

      This prevents extremely large edit files from accumulating on the active
      namenode, which can cause timeouts during namenode startup and pose an
      administrative hassle. This behavior is intended as a failsafe for when
      the standby or secondary namenode fail to roll the edit log by the normal
      checkpoint threshold.
    </description>
  </property>

  <property>
    <name>dfs.namenode.edit.log.autoroll.check.interval.ms</name>
    <value>300000</value>
    <description>
      How often an active namenode will check if it needs to roll its edit log,
      in milliseconds.
    </description>
  </property>

  <property>
    <name>dfs.webhdfs.user.provider.user.pattern</name>
    <value>^[A-Za-z_][A-Za-z0-9._-]*[$]?$</value>
    <description>
      Valid pattern for user and group names for webhdfs, it must be a valid java regex.
    </description>
  </property>

  <property>
    <name>dfs.webhdfs.acl.provider.permission.pattern</name>
    <value>^(default:)?(user|group|mask|other):[[A-Za-z_][A-Za-z0-9._-]]*:([rwx-]{3})?(,(default:)?(user|group|mask|other):[[A-Za-z_][A-Za-z0-9._-]]*:([rwx-]{3})?)*$</value>
    <description>
      Valid pattern for user and group names in webhdfs acl operations, it must be a valid java regex.
    </description>
  </property>

  <property>
    <name>dfs.webhdfs.socket.connect-timeout</name>
    <value>60s</value>
    <description>
      Socket timeout for connecting to WebHDFS servers. This prevents a
      WebHDFS client from hanging if the server hostname is
      misconfigured, or the server does not response before the timeout
      expires. Value is followed by a unit specifier: ns, us, ms, s, m,
      h, d for nanoseconds, microseconds, milliseconds, seconds,
      minutes, hours, days respectively. Values should provide units,
      but milliseconds are assumed.
    </description>
  </property>

  <property>
    <name>dfs.webhdfs.socket.read-timeout</name>
    <value>60s</value>
    <description>
      Socket timeout for reading data from WebHDFS servers. This
      prevents a WebHDFS client from hanging if the server stops sending
      data. Value is followed by a unit specifier: ns, us, ms, s, m, h,
      d for nanoseconds, microseconds, milliseconds, seconds, minutes,
      hours, days respectively. Values should provide units,
      but milliseconds are assumed.
    </description>
  </property>

  <property>
    <name>dfs.client.context</name>
    <value>default</value>
    <description>
      The name of the DFSClient context that we should use.  Clients that share
      a context share a socket cache and short-circuit cache, among other things.
      You should only change this if you don't want to share with another set of
      threads.
    </description>
  </property>

  <property>
    <name>dfs.client.read.shortcircuit</name>
    <value>false</value>
    <description>
      This configuration parameter turns on short-circuit local reads.
    </description>
  </property>

  <property>
    <name>dfs.client.socket.send.buffer.size</name>
    <value>0</value>
    <description>
      Socket send buffer size for a write pipeline in DFSClient side.
      This may affect TCP connection throughput.
      If it is set to zero or negative value,
      no buffer size will be set explicitly,
      thus enable tcp auto-tuning on some system.
      The default value is 0.
    </description>
  </property>

  <property>
    <name>dfs.domain.socket.path</name>
    <value></value>
    <description>
      Optional.  This is a path to a UNIX domain socket that will be used for
      communication between the DataNode and local HDFS clients.
      If the string "_PORT" is present in this path, it will be replaced by the
      TCP port of the DataNode.
    </description>
  </property>

  <property>
    <name>dfs.domain.socket.disable.interval.seconds</name>
    <value>600</value>
    <description>
      The interval that a DataNode is disabled for future Short-Circuit Reads,
      after an error happens during a Short-Circuit Read. Setting this to 0 will
      not disable Short-Circuit Reads at all after errors happen. Negative values
      are invalid.
    </description>
  </property>

  <property>
    <name>dfs.client.read.shortcircuit.skip.checksum</name>
    <value>false</value>
    <description>
      If this configuration parameter is set,
      short-circuit local reads will skip checksums.
      This is normally not recommended,
      but it may be useful for special setups.
      You might consider using this
      if you are doing your own checksumming outside of HDFS.
    </description>
  </property>

  <property>
    <name>dfs.client.read.shortcircuit.streams.cache.size</name>
    <value>256</value>
    <description>
      The DFSClient maintains a cache of recently opened file descriptors.
      This parameter controls the maximum number of file descriptors in the cache.
      Setting this higher will use more file descriptors,
      but potentially provide better performance on workloads
      involving lots of seeks.
    </description>
  </property>

  <property>
    <name>dfs.client.read.shortcircuit.streams.cache.expiry.ms</name>
    <value>300000</value>
    <description>
      This controls the minimum amount of time
      file descriptors need to sit in the client cache context
      before they can be closed for being inactive for too long.
    </description>
  </property>

  <property>
    <name>dfs.namenode.audit.log.debug.cmdlist</name>
    <value></value>
    <description>
      A comma separated list of NameNode commands that are written to the HDFS
      namenode audit log only if the audit log level is debug.
    </description>
  </property>

  <property>
    <name>dfs.client.use.legacy.blockreader.local</name>
    <value>false</value>
    <description>
      Legacy short-circuit reader implementation based on HDFS-2246 is used
      if this configuration parameter is true.
      This is for the platforms other than Linux
      where the new implementation based on HDFS-347 is not available.
    </description>
  </property>

  <property>
    <name>dfs.block.local-path-access.user</name>
    <value></value>
    <description>
      Comma separated list of the users allowed to open block files
      on legacy short-circuit local read.
    </description>
  </property>

  <property>
    <name>dfs.client.domain.socket.data.traffic</name>
    <value>false</value>
    <description>
      This control whether we will try to pass normal data traffic
      over UNIX domain socket rather than over TCP socket
      on node-local data transfer.
      This is currently experimental and turned off by default.
    </description>
  </property>

  <property>
    <name>dfs.namenode.reject-unresolved-dn-topology-mapping</name>
    <value>false</value>
    <description>
      If the value is set to true, then namenode will reject datanode 
      registration if the topology mapping for a datanode is not resolved and 
      NULL is returned (script defined by net.topology.script.file.name fails 
      to execute). Otherwise, datanode will be registered and the default rack 
      will be assigned as the topology path. Topology paths are important for 
      data resiliency, since they define fault domains. Thus it may be unwanted 
      behavior to allow datanode registration with the default rack if the 
      resolving topology failed.
    </description>
  </property>

  <property>
    <name>dfs.namenode.xattrs.enabled</name>
    <value>true</value>
    <description>
      Whether support for extended attributes is enabled on the NameNode.
    </description>
  </property>

  <property>
    <name>dfs.namenode.fs-limits.max-xattrs-per-inode</name>
    <value>32</value>
    <description>
      Maximum number of extended attributes per inode.
    </description>
  </property>

  <property>
    <name>dfs.namenode.fs-limits.max-xattr-size</name>
    <value>16384</value>
    <description>
      The maximum combined size of the name and value of an extended attribute
      in bytes. It should be larger than 0, and less than or equal to maximum
      size hard limit which is 32768.
    </description>
  </property>

  <property>
    <name>dfs.client.slow.io.warning.threshold.ms</name>
    <value>30000</value>
    <description>The threshold in milliseconds at which we will log a slow
      io warning in a dfsclient. By default, this parameter is set to 30000
      milliseconds (30 seconds).
    </description>
  </property>

  <property>
    <name>dfs.datanode.slow.io.warning.threshold.ms</name>
    <value>300</value>
    <description>The threshold in milliseconds at which we will log a slow
      io warning in a datanode. By default, this parameter is set to 300
      milliseconds.
    </description>
  </property>

  <property>
    <name>dfs.namenode.lease-recheck-interval-ms</name>
    <value>2000</value>
    <description>During the release of lease a lock is hold that make any
      operations on the namenode stuck. In order to not block them during
      a too long duration we stop releasing lease after this max lock limit.
    </description>
  </property>

  <property>
    <name>dfs.namenode.max-lock-hold-to-release-lease-ms</name>
    <value>25</value>
    <description>During the release of lease a lock is hold that make any
      operations on the namenode stuck. In order to not block them during
      a too long duration we stop releasing lease after this max lock limit.
    </description>
  </property>

  <property>
    <name>dfs.namenode.write-lock-reporting-threshold-ms</name>
    <value>5000</value>
    <description>When a write lock is held on the namenode for a long time,
      this will be logged as the lock is released. This sets how long the
      lock must be held for logging to occur.
    </description>
  </property>

  <property>
    <name>dfs.namenode.read-lock-reporting-threshold-ms</name>
    <value>5000</value>
    <description>When a read lock is held on the namenode for a long time,
      this will be logged as the lock is released. This sets how long the
      lock must be held for logging to occur.
    </description>
  </property>

  <property>
    <name>dfs.namenode.lock.detailed-metrics.enabled</name>
    <value>false</value>
    <description>If true, the namenode will keep track of how long various
      operations hold the Namesystem lock for and emit this as metrics. These
      metrics have names of the form FSN(Read|Write)LockNanosOperationName,
      where OperationName denotes the name of the operation that initiated the
      lock hold (this will be OTHER for certain uncategorized operations) and
      they export the hold time values in nanoseconds.
    </description>
  </property>

  <property>
    <name>dfs.namenode.fslock.fair</name>
    <value>true</value>
    <description>If this is true, the FS Namesystem lock will be used in Fair mode,
      which will help to prevent writer threads from being starved, but can provide
      lower lock throughput. See java.util.concurrent.locks.ReentrantReadWriteLock
      for more information on fair/non-fair locks.
    </description>
  </property>

  <property>
    <name>dfs.namenode.startup.delay.block.deletion.sec</name>
    <value>0</value>
    <description>The delay in seconds at which we will pause the blocks deletion
      after Namenode startup. By default it's disabled.
      In the case a directory has large number of directories and files are
      deleted, suggested delay is one hour to give the administrator enough time
      to notice large number of pending deletion blocks and take corrective
      action.
    </description>
  </property>

  <property>
    <name>dfs.datanode.block.id.layout.upgrade.threads</name>
    <value>12</value>
    <description>The number of threads to use when creating hard links from
      current to previous blocks during upgrade of a DataNode to block ID-based
      block layout (see HDFS-6482 for details on the layout).</description>
  </property>

  <property>
    <name>dfs.namenode.list.encryption.zones.num.responses</name>
    <value>100</value>
    <description>When listing encryption zones, the maximum number of zones
      that will be returned in a batch. Fetching the list incrementally in
      batches improves namenode performance.
    </description>
  </property>

  <property>
    <name>dfs.namenode.list.reencryption.status.num.responses</name>
    <value>100</value>
    <description>When listing re-encryption status, the maximum number of zones
      that will be returned in a batch. Fetching the list incrementally in
      batches improves namenode performance.
    </description>
  </property>

    <property>
      <name>dfs.namenode.list.openfiles.num.responses</name>
      <value>1000</value>
      <description>
        When listing open files, the maximum number of open files that will be
        returned in a single batch. Fetching the list incrementally in batches
        improves namenode performance.
      </description>
    </property>

  <property>
    <name>dfs.namenode.edekcacheloader.interval.ms</name>
    <value>1000</value>
    <description>When KeyProvider is configured, the interval time of warming
      up edek cache on NN starts up / becomes active. All edeks will be loaded
      from KMS into provider cache. The edek cache loader will try to warm up the
      cache until succeed or NN leaves active state.
    </description>
  </property>

  <property>
    <name>dfs.namenode.edekcacheloader.initial.delay.ms</name>
    <value>3000</value>
    <description>When KeyProvider is configured, the time delayed until the first
      attempt to warm up edek cache on NN start up / become active.
    </description>
  </property>

  <property>
    <name>dfs.namenode.reencrypt.sleep.interval</name>
    <value>1m</value>
    <description>Interval the re-encrypt EDEK thread sleeps in the main loop. The
      interval accepts units. If none given, millisecond is assumed.
    </description>
  </property>

  <property>
    <name>dfs.namenode.reencrypt.batch.size</name>
    <value>1000</value>
    <description>How many EDEKs should the re-encrypt thread process in one batch.
    </description>
  </property>

  <property>
    <name>dfs.namenode.reencrypt.throttle.limit.handler.ratio</name>
    <value>1.0</value>
    <description>Throttling ratio for the re-encryption, indicating what fraction
      of time should the re-encrypt handler thread work under NN read lock.
      Larger than 1.0 values are interpreted as 1.0. Negative value or 0 are
      invalid values and will fail NN startup.
    </description>
  </property>

  <property>
    <name>dfs.namenode.reencrypt.throttle.limit.updater.ratio</name>
    <value>1.0</value>
    <description>Throttling ratio for the re-encryption, indicating what fraction
      of time should the re-encrypt updater thread work under NN write lock.
      Larger than 1.0 values are interpreted as 1.0. Negative value or 0 are
      invalid values and will fail NN startup.
    </description>
  </property>

  <property>
    <name>dfs.namenode.reencrypt.edek.threads</name>
    <value>10</value>
    <description>Maximum number of re-encrypt threads to contact the KMS
      and re-encrypt the edeks.
    </description>
  </property>

  <property>
    <name>dfs.namenode.inotify.max.events.per.rpc</name>
    <value>1000</value>
    <description>Maximum number of events that will be sent to an inotify client
      in a single RPC response. The default value attempts to amortize away
      the overhead for this RPC while avoiding huge memory requirements for the
      client and NameNode (1000 events should consume no more than 1 MB.)
    </description>
  </property>

  <property>
    <name>dfs.user.home.dir.prefix</name>
    <value>/user</value>
    <description>The directory to prepend to user name to get the user's
      home direcotry.
    </description>
  </property>

  <property>
    <name>dfs.datanode.cache.revocation.timeout.ms</name>
    <value>900000</value>
    <description>When the DFSClient reads from a block file which the DataNode is
      caching, the DFSClient can skip verifying checksums.  The DataNode will
      keep the block file in cache until the client is done.  If the client takes
      an unusually long time, though, the DataNode may need to evict the block
      file from the cache anyway.  This value controls how long the DataNode will
      wait for the client to release a replica that it is reading without
      checksums.
    </description>
  </property>

  <property>
    <name>dfs.datanode.cache.revocation.polling.ms</name>
    <value>500</value>
    <description>How often the DataNode should poll to see if the clients have
      stopped using a replica that the DataNode wants to uncache.
    </description>
  </property>

  <property>
    <name>dfs.storage.policy.enabled</name>
    <value>true</value>
    <description>
      Allow users to change the storage policy on files and directories.
    </description>
  </property>

  <property>
    <name>dfs.namenode.legacy-oiv-image.dir</name>
    <value></value>
    <description>Determines where to save the namespace in the old fsimage format
      during checkpointing by standby NameNode or SecondaryNameNode. Users can
      dump the contents of the old format fsimage by oiv_legacy command. If
      the value is not specified, old format fsimage will not be saved in
      checkpoint.
    </description>
  </property>

  <property>
    <name>dfs.namenode.top.enabled</name>
    <value>true</value>
    <description>Enable nntop: reporting top users on namenode
    </description>
  </property>

  <property>
    <name>dfs.namenode.top.window.num.buckets</name>
    <value>10</value>
    <description>Number of buckets in the rolling window implementation of nntop
    </description>
  </property>

  <property>
    <name>dfs.namenode.top.num.users</name>
    <value>10</value>
    <description>Number of top users returned by the top tool
    </description>
  </property>

  <property>
    <name>dfs.namenode.top.windows.minutes</name>
    <value>1,5,25</value>
    <description>comma separated list of nntop reporting periods in minutes
    </description>
  </property>

  <property>
      <name>dfs.webhdfs.ugi.expire.after.access</name>
      <value>600000</value>
      <description>How long in milliseconds after the last access
        the cached UGI will expire. With 0, never expire.
      </description>
  </property>

  <property>
    <name>dfs.namenode.blocks.per.postponedblocks.rescan</name>
    <value>10000</value>
    <description>Number of blocks to rescan for each iteration of
      postponedMisreplicatedBlocks.
    </description>
  </property>

  <property>
    <name>dfs.datanode.block-pinning.enabled</name>
    <value>false</value>
    <description>Whether pin blocks on favored DataNode.</description>
  </property>

  <property>
    <name>dfs.client.block.write.locateFollowingBlock.initial.delay.ms</name>
    <value>400</value>
    <description>The initial delay (unit is ms) for locateFollowingBlock,
      the delay time will increase exponentially(double) for each retry.
    </description>
  </property>

  <property>
    <name>dfs.ha.zkfc.nn.http.timeout.ms</name>
    <value>20000</value>
    <description>
      The HTTP connection and read timeout value (unit is ms ) when DFS ZKFC
      tries to get local NN thread dump after local NN becomes
      SERVICE_NOT_RESPONDING or SERVICE_UNHEALTHY.
      If it is set to zero, DFS ZKFC won't get local NN thread dump.
    </description>
  </property>

  <property>
    <name>dfs.ha.tail-edits.in-progress</name>
    <value>false</value>
    <description>
      Whether enable standby namenode to tail in-progress edit logs.
      Clients might want to turn it on when they want Standby NN to have
      more up-to-date data. When using the QuorumJournalManager, this enables
      tailing of edit logs via the RPC-based mechanism, rather than streaming,
      which allows for much fresher data.
    </description>
  </property>

  <property>
    <name>dfs.namenode.ec.system.default.policy</name>
    <value>RS-6-3-1024k</value>
    <description>The default erasure coding policy name will be used
      on the path if no policy name is passed.
    </description>
  </property>

  <property>
    <name>dfs.namenode.ec.policies.max.cellsize</name>
    <value>4194304</value>
    <description>The maximum cell size of erasure coding policy. Default is 4MB.
    </description>
  </property>

  <property>
    <name>dfs.datanode.ec.reconstruction.stripedread.timeout.millis</name>
    <value>5000</value>
    <description>Datanode striped read timeout in milliseconds.
    </description>
  </property>

  <property>
    <name>dfs.datanode.ec.reconstruction.stripedread.buffer.size</name>
    <value>65536</value>
    <description>Datanode striped read buffer size.
    </description>
  </property>

  <property>
    <name>dfs.datanode.ec.reconstruction.threads</name>
    <value>8</value>
    <description>
      Number of threads used by the Datanode for background
      reconstruction work.
    </description>
  </property>

  <property>
    <name>dfs.datanode.ec.reconstruction.xmits.weight</name>
    <value>0.5</value>
    <description>
      Datanode uses xmits weight to calculate the relative cost of EC recovery
      tasks comparing to replicated block recovery, of which xmits is always 1.
      Namenode then uses xmits reported from datanode to throttle recovery tasks
      for EC and replicated blocks.
      The xmits of an erasure coding recovery task is calculated as the maximum
      value between the number of read streams and the number of write streams.
    </description>
  </property>

  <property>
    <name>dfs.namenode.quota.init-threads</name>
    <value>4</value>
    <description>
      The number of concurrent threads to be used in quota initialization. The
      speed of quota initialization also affects the namenode fail-over latency.
      If the size of name space is big, try increasing this.
    </description>
  </property>

  <property>
    <name>dfs.datanode.transfer.socket.send.buffer.size</name>
    <value>0</value>
    <description>
      Socket send buffer size for DataXceiver (mirroring packets to downstream
      in pipeline). This may affect TCP connection throughput.
      If it is set to zero or negative value, no buffer size will be set
      explicitly, thus enable tcp auto-tuning on some system.
      The default value is 0.
    </description>
  </property>

  <property>
    <name>dfs.datanode.transfer.socket.recv.buffer.size</name>
    <value>0</value>
    <description>
      Socket receive buffer size for DataXceiver (receiving packets from client
      during block writing). This may affect TCP connection throughput.
      If it is set to zero or negative value, no buffer size will be set
      explicitly, thus enable tcp auto-tuning on some system.
      The default value is 0.
    </description>
  </property>

  <property>
    <name>dfs.namenode.upgrade.domain.factor</name>
    <value>${dfs.replication}</value>
    <description>
      This is valid only when block placement policy is set to
      BlockPlacementPolicyWithUpgradeDomain. It defines the number of
      unique upgrade domains any block's replicas should have.
      When the number of replicas is less or equal to this value, the policy
      ensures each replica has an unique upgrade domain. When the number of
      replicas is greater than this value, the policy ensures the number of
      unique domains is at least this value.
    </description>
  </property>

  <property>
    <name>dfs.ha.zkfc.port</name>
    <value>8019</value>
    <description>
      RPC port for Zookeeper Failover Controller.
    </description>
  </property>

  <property>
    <name>dfs.datanode.bp-ready.timeout</name>
    <value>20s</value>
    <description>
      The maximum wait time for datanode to be ready before failing the
      received request. Setting this to 0 fails requests right away if the
      datanode is not yet registered with the namenode. This wait time
      reduces initial request failures after datanode restart.
      Support multiple time unit suffix(case insensitive), as described
      in dfs.heartbeat.interval.
    </description>
  </property>

  <property>
    <name>dfs.datanode.cached-dfsused.check.interval.ms</name>
    <value>600000</value>
    <description>
      The interval check time of loading DU_CACHE_FILE in each volume.
      When the cluster doing the rolling upgrade operations, it will
      usually lead dfsUsed cache file of each volume expired and redo the
      du operations in datanode and that makes datanode start slowly. Adjust
      this property can make cache file be available for the time as you want.
    </description>
  </property>

  <property>
    <name>dfs.webhdfs.rest-csrf.enabled</name>
    <value>false</value>
    <description>
      If true, then enables WebHDFS protection against cross-site request forgery
      (CSRF).  The WebHDFS client also uses this property to determine whether or
      not it needs to send the custom CSRF prevention header in its HTTP requests.
    </description>
  </property>

  <property>
    <name>dfs.webhdfs.rest-csrf.custom-header</name>
    <value>X-XSRF-HEADER</value>
    <description>
      The name of a custom header that HTTP requests must send when protection
      against cross-site request forgery (CSRF) is enabled for WebHDFS by setting
      dfs.webhdfs.rest-csrf.enabled to true.  The WebHDFS client also uses this
      property to determine whether or not it needs to send the custom CSRF
      prevention header in its HTTP requests.
    </description>
  </property>

  <property>
    <name>dfs.webhdfs.rest-csrf.methods-to-ignore</name>
    <value>GET,OPTIONS,HEAD,TRACE</value>
    <description>
      A comma-separated list of HTTP methods that do not require HTTP requests to
      include a custom header when protection against cross-site request forgery
      (CSRF) is enabled for WebHDFS by setting dfs.webhdfs.rest-csrf.enabled to
      true.  The WebHDFS client also uses this property to determine whether or
      not it needs to send the custom CSRF prevention header in its HTTP requests.
    </description>
  </property>

  <property>
    <name>dfs.webhdfs.rest-csrf.browser-useragents-regex</name>
    <value>^Mozilla.*,^Opera.*</value>
    <description>
      A comma-separated list of regular expressions used to match against an HTTP
      request's User-Agent header when protection against cross-site request
      forgery (CSRF) is enabled for WebHDFS by setting
      dfs.webhdfs.reset-csrf.enabled to true.  If the incoming User-Agent matches
      any of these regular expressions, then the request is considered to be sent
      by a browser, and therefore CSRF prevention is enforced.  If the request's
      User-Agent does not match any of these regular expressions, then the request
      is considered to be sent by something other than a browser, such as scripted
      automation.  In this case, CSRF is not a potential attack vector, so
      the prevention is not enforced.  This helps achieve backwards-compatibility
      with existing automation that has not been updated to send the CSRF
      prevention header.
    </description>
  </property>

    <property>
      <name>dfs.xframe.enabled</name>
      <value>true</value>
      <description>
        If true, then enables protection against clickjacking by returning
        X_FRAME_OPTIONS header value set to SAMEORIGIN.
        Clickjacking protection prevents an attacker from using transparent or
        opaque layers to trick a user into clicking on a button
        or link on another page.
      </description>
    </property>

    <property>
      <name>dfs.xframe.value</name>
      <value>SAMEORIGIN</value>
      <description>
        This configration value allows user to specify the value for the
        X-FRAME-OPTIONS. The possible values for this field are
        DENY, SAMEORIGIN and ALLOW-FROM. Any other value will throw an
        exception when namenode and datanodes are starting up.
      </description>
    </property>


  <property>
    <name>dfs.balancer.keytab.enabled</name>
    <value>false</value>
    <description>
      Set to true to enable login using a keytab for Kerberized Hadoop.
    </description>
  </property>

  <property>
    <name>dfs.balancer.address</name>
    <value>0.0.0.0:0</value>
    <description>
      The hostname used for a keytab based Kerberos login. Keytab based login
      can be enabled with dfs.balancer.keytab.enabled.
    </description>
  </property>

  <property>
    <name>dfs.balancer.keytab.file</name>
    <value></value>
    <description>
      The keytab file used by the Balancer to login as its
      service principal. The principal name is configured with
      dfs.balancer.kerberos.principal. Keytab based login can be
      enabled with dfs.balancer.keytab.enabled.
    </description>
  </property>

  <property>
    <name>dfs.balancer.kerberos.principal</name>
    <value></value>
    <description>
      The Balancer principal. This is typically set to
      balancer/_HOST@REALM.TLD. The Balancer will substitute _HOST with its
      own fully qualified hostname at startup. The _HOST placeholder
      allows using the same configuration setting on different servers.
      Keytab based login can be enabled with dfs.balancer.keytab.enabled.
    </description>
  </property>

  <property>
    <name>dfs.http.client.retry.policy.enabled</name>
    <value>false</value>
    <description>
      If "true", enable the retry policy of WebHDFS client.
      If "false", retry policy is turned off.
      Enabling the retry policy can be quite useful while using WebHDFS to
      copy large files between clusters that could timeout, or
      copy files between HA clusters that could failover during the copy.
    </description>
  </property>

  <property>
    <name>dfs.http.client.retry.policy.spec</name>
    <value>10000,6,60000,10</value>
    <description>
      Specify a policy of multiple linear random retry for WebHDFS client,
      e.g. given pairs of number of retries and sleep time (n0, t0), (n1, t1),
      ..., the first n0 retries sleep t0 milliseconds on average,
      the following n1 retries sleep t1 milliseconds on average, and so on.
    </description>
  </property>

  <property>
    <name>dfs.http.client.failover.max.attempts</name>
    <value>15</value>
    <description>
      Specify the max number of failover attempts for WebHDFS client
      in case of network exception.
    </description>
  </property>

  <property>
    <name>dfs.http.client.retry.max.attempts</name>
    <value>10</value>
    <description>
      Specify the max number of retry attempts for WebHDFS client,
      if the difference between retried attempts and failovered attempts is
      larger than the max number of retry attempts, there will be no more
      retries.
    </description>
  </property>

  <property>
    <name>dfs.http.client.failover.sleep.base.millis</name>
    <value>500</value>
    <description>
      Specify the base amount of time in milliseconds upon which the
      exponentially increased sleep time between retries or failovers
      is calculated for WebHDFS client.
    </description>
  </property>

  <property>
    <name>dfs.http.client.failover.sleep.max.millis</name>
    <value>15000</value>
    <description>
      Specify the upper bound of sleep time in milliseconds between
      retries or failovers for WebHDFS client.
    </description>
  </property>

  <property>
    <name>dfs.namenode.hosts.provider.classname</name>
    <value>org.apache.hadoop.hdfs.server.blockmanagement.HostFileManager</value>
    <description>
      The class that provides access for host files.
      org.apache.hadoop.hdfs.server.blockmanagement.HostFileManager is used
      by default which loads files specified by dfs.hosts and dfs.hosts.exclude.
      If org.apache.hadoop.hdfs.server.blockmanagement.CombinedHostFileManager is
      used, it will load the JSON file defined in dfs.hosts.
      To change class name, nn restart is required. "dfsadmin -refreshNodes" only
      refreshes the configuration files used by the class.
    </description>
  </property>

  <property>
    <name>datanode.https.port</name>
    <value>50475</value>
    <description>
      HTTPS port for DataNode.
    </description>
  </property>

  <property>
    <name>dfs.balancer.dispatcherThreads</name>
    <value>200</value>
    <description>
      Size of the thread pool for the HDFS balancer block mover.
      dispatchExecutor
    </description>
  </property>

  <property>
    <name>dfs.balancer.movedWinWidth</name>
    <value>5400000</value>
    <description>
      Window of time in ms for the HDFS balancer tracking blocks and its
      locations.
    </description>
  </property>

  <property>
    <name>dfs.balancer.moverThreads</name>
    <value>1000</value>
    <description>
      Thread pool size for executing block moves.
      moverThreadAllocator
    </description>
  </property>

  <property>
    <name>dfs.balancer.max-size-to-move</name>
    <value>10737418240</value>
    <description>
      Maximum number of bytes that can be moved by the balancer in a single
      thread.
    </description>
  </property>

  <property>
    <name>dfs.balancer.getBlocks.min-block-size</name>
    <value>10485760</value>
    <description>
      Minimum block threshold size in bytes to ignore when fetching a source's
      block list.
    </description>
  </property>

  <property>
    <name>dfs.balancer.getBlocks.size</name>
    <value>2147483648</value>
    <description>
      Total size in bytes of Datanode blocks to get when fetching a source's
      block list.
    </description>
  </property>

  <property>
    <name>dfs.balancer.block-move.timeout</name>
    <value>0</value>
    <description>
      Maximum amount of time in milliseconds for a block to move. If this is set
      greater than 0, Balancer will stop waiting for a block move completion
      after this time. In typical clusters, a 3 to 5 minute timeout is reasonable.
      If timeout happens to a large proportion of block moves, this needs to be
      increased. It could also be that too much work is dispatched and many nodes
      are constantly exceeding the bandwidth limit as a result. In that case,
      other balancer parameters might need to be adjusted.
      It is disabled (0) by default.
    </description>
  </property>

  <property>
    <name>dfs.balancer.max-no-move-interval</name>
    <value>60000</value>
    <description>
      If this specified amount of time has elapsed and no block has been moved
      out of a source DataNode, on more effort will be made to move blocks out of
      this DataNode in the current Balancer iteration.
    </description>
  </property>

  <property>
    <name>dfs.balancer.max-iteration-time</name>
    <value>1200000</value>
    <description>
      Maximum amount of time while an iteration can be run by the Balancer. After
      this time the Balancer will stop the iteration, and reevaluate the work
      needs to be done to Balance the cluster. The default value is 20 minutes.
    </description>
  </property>

  <property>
    <name>dfs.block.invalidate.limit</name>
    <value>1000</value>
    <description>
      The maximum number of invalidate blocks sent by namenode to a datanode
      per heartbeat deletion command. This property works with
      "dfs.namenode.invalidate.work.pct.per.iteration" to throttle block
      deletions.
    </description>
  </property>

  <property>
    <name>dfs.block.misreplication.processing.limit</name>
    <value>10000</value>
    <description>
      Maximum number of blocks to process for initializing replication queues.
    </description>
  </property>

  <property>
    <name>dfs.block.placement.ec.classname</name>
    <value>org.apache.hadoop.hdfs.server.blockmanagement.BlockPlacementPolicyRackFaultTolerant</value>
    <description>
      Placement policy class for striped files.
      Defaults to BlockPlacementPolicyRackFaultTolerant.class
    </description>
  </property>

  <property>
    <name>dfs.block.replicator.classname</name>
    <value>org.apache.hadoop.hdfs.server.blockmanagement.BlockPlacementPolicyDefault</value>
    <description>
      Class representing block placement policy for non-striped files.
      There are four block placement policies currently being supported:
      BlockPlacementPolicyDefault, BlockPlacementPolicyWithNodeGroup,
      BlockPlacementPolicyRackFaultTolerant and BlockPlacementPolicyWithUpgradeDomain.
      BlockPlacementPolicyDefault chooses the desired number of targets
      for placing block replicas in a default way. BlockPlacementPolicyWithNodeGroup
      places block replicas on environment with node-group layer. BlockPlacementPolicyRackFaultTolerant
      places the replicas to more racks.
      BlockPlacementPolicyWithUpgradeDomain places block replicas that honors upgrade domain policy.
      The details of placing replicas are documented in the javadoc of the corresponding policy classes.
      The default policy is BlockPlacementPolicyDefault, and the corresponding class is
      org.apache.hadoop.hdfs.server.blockmanagement.BlockPlacementPolicyDefault.
    </description>
  </property>

  <property>
    <name>dfs.blockreport.incremental.intervalMsec</name>
    <value>0</value>
    <description>
      If set to a positive integer, the value in ms to wait between sending
      incremental block reports from the Datanode to the Namenode.
    </description>
  </property>

  <property>
    <name>dfs.checksum.type</name>
    <value>CRC32C</value>
    <description>
      Checksum type
    </description>
  </property>

  <property>
    <name>dfs.checksum.combine.mode</name>
    <value>MD5MD5CRC</value>
    <description>
      Defines how lower-level chunk/block checksums are combined into file-level
      checksums; the original MD5MD5CRC mode is not comparable between files
      with different block layouts, while modes like COMPOSITE_CRC are
      comparable independently of block layout.
    </description>
  </property>

  <property>
    <name>dfs.client.block.write.locateFollowingBlock.retries</name>
    <value>5</value>
    <description>
      Number of retries to use when finding the next block during HDFS writes.
    </description>
  </property>

  <property>
    <name>dfs.client.failover.proxy.provider</name>
    <value></value>
    <description>
      The prefix (plus a required nameservice ID) for the class name of the
      configured Failover proxy provider for the host.  For more detailed
      information, please consult the "Configuration Details" section of
      the HDFS High Availability documentation.
    </description>
  </property>

  <property>
    <name>dfs.client.failover.random.order</name>
    <value>false</value>
    <description>
      Determines if the failover proxies are picked in random order instead of the
      configured order. The prefix can be used with an optional nameservice ID
      (of form dfs.client.failover.random.order[.nameservice]) in case multiple
      nameservices exist and random order should be enabled for specific
      nameservices.
    </description>
  </property>

  <property>
    <name>dfs.client.key.provider.cache.expiry</name>
    <value>864000000</value>
    <description>
      DFS client security key cache expiration in milliseconds.
    </description>
  </property>

  <property>
    <name>dfs.client.max.block.acquire.failures</name>
    <value>3</value>
    <description>
      Maximum failures allowed when trying to get block information from a specific datanode.
    </description>
  </property>

  <property>
    <name>dfs.client.read.prefetch.size</name>
    <value></value>
    <description>
      The number of bytes for the DFSClient will fetch from the Namenode
      during a read operation.  Defaults to 10 * ${dfs.blocksize}.
    </description>
  </property>

  <property>
    <name>dfs.client.read.short.circuit.replica.stale.threshold.ms</name>
    <value>1800000</value>
    <description>
      Threshold in milliseconds for read entries during short-circuit local reads.
    </description>
  </property>

  <property>
    <name>dfs.client.read.shortcircuit.buffer.size</name>
    <value>1048576</value>
    <description>
      Buffer size in bytes for short-circuit local reads.
    </description>
  </property>

  <property>
    <name>dfs.client.read.striped.threadpool.size</name>
    <value>18</value>
    <description>
      The maximum number of threads used for parallel reading
      in striped layout.
    </description>
  </property>

  <property>
    <name>dfs.client.replica.accessor.builder.classes</name>
    <value></value>
    <description>
      Comma-separated classes for building ReplicaAccessor.  If the classes
      are specified, client will use external BlockReader that uses the
      ReplicaAccessor built by the builder.
    </description>
  </property>

  <property>
    <name>dfs.client.retry.interval-ms.get-last-block-length</name>
    <value>4000</value>
    <description>
      Retry interval in milliseconds to wait between retries in getting
      block lengths from the datanodes.
    </description>
  </property>

  <property>
    <name>dfs.client.retry.max.attempts</name>
    <value>10</value>
    <description>
      Max retry attempts for DFSClient talking to namenodes.
    </description>
  </property>

  <property>
    <name>dfs.client.retry.policy.enabled</name>
    <value>false</value>
    <description>
      If true, turns on DFSClient retry policy.
    </description>
  </property>

  <property>
    <name>dfs.client.retry.policy.spec</name>
    <value>10000,6,60000,10</value>
    <description>
      Set to pairs of timeouts and retries for DFSClient.
    </description>
  </property>

  <property>
    <name>dfs.client.retry.times.get-last-block-length</name>
    <value>3</value>
    <description>
      Number of retries for calls to fetchLocatedBlocksAndGetLastBlockLength().
    </description>
  </property>

  <property>
    <name>dfs.client.retry.window.base</name>
    <value>3000</value>
    <description>
      Base time window in ms for DFSClient retries.  For each retry attempt,
      this value is extended linearly (e.g. 3000 ms for first attempt and
      first retry, 6000 ms for second retry, 9000 ms for third retry, etc.).
    </description>
  </property>

  <property>
    <name>dfs.client.socket-timeout</name>
    <value>60000</value>
    <description>
      Default timeout value in milliseconds for all sockets.
    </description>
  </property>

  <property>
    <name>dfs.client.socketcache.capacity</name>
    <value>16</value>
    <description>
      Socket cache capacity (in entries) for short-circuit reads.
      If this value is set to 0, the client socket cache is disabled.
    </description>
  </property>

  <property>
    <name>dfs.client.socketcache.expiryMsec</name>
    <value>3000</value>
    <description>
      Socket cache expiration for short-circuit reads in msec.
    </description>
  </property>

  <property>
    <name>dfs.client.test.drop.namenode.response.number</name>
    <value>0</value>
    <description>
      The number of Namenode responses dropped by DFSClient for each RPC call.  Used
      for testing the NN retry cache.
    </description>
  </property>

  <property>
    <name>dfs.client.hedged.read.threadpool.size</name>
    <value>0</value>
    <description>
      Support 'hedged' reads in DFSClient. To enable this feature, set the parameter
      to a positive number. The threadpool size is how many threads to dedicate
      to the running of these 'hedged', concurrent reads in your client.
    </description>
  </property>

  <property>
    <name>dfs.client.hedged.read.threshold.millis</name>
    <value>500</value>
    <description>
      Configure 'hedged' reads in DFSClient. This is the number of milliseconds
      to wait before starting up a 'hedged' read.
    </description>
  </property>

  <property>
    <name>dfs.client.write.byte-array-manager.count-limit</name>
    <value>2048</value>
    <description>
      The maximum number of arrays allowed for each array length.
    </description>
  </property>

  <property>
    <name>dfs.client.write.byte-array-manager.count-reset-time-period-ms</name>
    <value>10000</value>
    <description>
      The time period in milliseconds that the allocation count for each array length is
      reset to zero if there is no increment.
    </description>
  </property>

  <property>
    <name>dfs.client.write.byte-array-manager.count-threshold</name>
    <value>128</value>
    <description>
      The count threshold for each array length so that a manager is created only after the
      allocation count exceeds the threshold. In other words, the particular array length
      is not managed until the allocation count exceeds the threshold.
    </description>
  </property>

  <property>
    <name>dfs.client.write.byte-array-manager.enabled</name>
    <value>false</value>
    <description>
      If true, enables byte array manager used by DFSOutputStream.
    </description>
  </property>

  <property>
    <name>dfs.client.write.max-packets-in-flight</name>
    <value>80</value>
    <description>
      The maximum number of DFSPackets allowed in flight.
    </description>
  </property>

  <property>
    <name>dfs.content-summary.limit</name>
    <value>5000</value>
    <description>
      The maximum content summary counts allowed in one locking period. 0 or a negative number
      means no limit (i.e. no yielding).
    </description>
  </property>

  <property>
    <name>dfs.content-summary.sleep-microsec</name>
    <value>500</value>
    <description>
      The length of time in microseconds to put the thread to sleep, between reaquiring the locks
      in content summary computation.
    </description>
  </property>

  <property>
    <name>dfs.data.transfer.client.tcpnodelay</name>
    <value>true</value>
    <description>
      If true, set TCP_NODELAY to sockets for transferring data from DFS client.
    </description>
  </property>

  <property>
    <name>dfs.data.transfer.server.tcpnodelay</name>
    <value>true</value>
    <description>
      If true, set TCP_NODELAY to sockets for transferring data between Datanodes.
    </description>
  </property>

  <property>
    <name>dfs.datanode.balance.max.concurrent.moves</name>
    <value>50</value>
    <description>
      Maximum number of threads for Datanode balancer pending moves.  This
      value is reconfigurable via the "dfsadmin -reconfig" command.
    </description>
  </property>

  <property>
    <name>dfs.datanode.fsdataset.factory</name>
    <value></value>
    <description>
      The class name for the underlying storage that stores replicas for a
      Datanode.  Defaults to
      org.apache.hadoop.hdfs.server.datanode.fsdataset.impl.FsDatasetFactory.
    </description>
  </property>

  <property>
    <name>dfs.datanode.fsdataset.volume.choosing.policy</name>
    <value></value>
    <description>
      The class name of the policy for choosing volumes in the list of
      directories.  Defaults to
      org.apache.hadoop.hdfs.server.datanode.fsdataset.RoundRobinVolumeChoosingPolicy.
      If you would like to take into account available disk space, set the
      value to
      "org.apache.hadoop.hdfs.server.datanode.fsdataset.AvailableSpaceVolumeChoosingPolicy".
    </description>
  </property>

  <property>
    <name>dfs.datanode.hostname</name>
    <value></value>
    <description>
      Optional.  The hostname for the Datanode containing this
      configuration file.  Will be different for each machine.
      Defaults to current hostname.
    </description>
  </property>

  <property>
    <name>dfs.datanode.lazywriter.interval.sec</name>
    <value>60</value>
    <description>
      Interval in seconds for Datanodes for lazy persist writes.
    </description>
  </property>

  <property>
    <name>dfs.datanode.network.counts.cache.max.size</name>
    <value>2147483647</value>
    <description>
      The maximum number of entries the datanode per-host network error
      count cache may contain.
    </description>
  </property>

  <property>
    <name>dfs.datanode.oob.timeout-ms</name>
    <value>1500,0,0,0</value>
    <description>
      Timeout value when sending OOB response for each OOB type, which are
      OOB_RESTART, OOB_RESERVED1, OOB_RESERVED2, and OOB_RESERVED3,
      respectively.  Currently, only OOB_RESTART is used.
    </description>
  </property>

  <property>
    <name>dfs.datanode.parallel.volumes.load.threads.num</name>
    <value></value>
    <description>
      Maximum number of threads to use for upgrading data directories.
      The default value is the number of storage directories in the
      DataNode.
    </description>
  </property>

  <property>
    <name>dfs.datanode.ram.disk.replica.tracker</name>
    <value></value>
    <description>
      Name of the class implementing the RamDiskReplicaTracker interface.
      Defaults to
      org.apache.hadoop.hdfs.server.datanode.fsdataset.impl.RamDiskReplicaLruTracker.
    </description>
  </property>

  <property>
    <name>dfs.datanode.restart.replica.expiration</name>
    <value>50</value>
    <description>
      During shutdown for restart, the amount of time in seconds budgeted for
      datanode restart.
    </description>
  </property>

  <property>
    <name>dfs.datanode.socket.reuse.keepalive</name>
    <value>4000</value>
    <description>
      The window of time in ms before the DataXceiver closes a socket for a
      single request.  If a second request occurs within that window, the
      socket can be reused.
    </description>
  </property>

  <property>
    <name>dfs.datanode.socket.write.timeout</name>
    <value>480000</value>
    <description>
      Timeout in ms for clients socket writes to DataNodes.
    </description>
  </property>

  <property>
    <name>dfs.datanode.sync.behind.writes.in.background</name>
    <value>false</value>
    <description>
      If set to true, then sync_file_range() system call will occur
      asynchronously.  This property is only valid when the property
      dfs.datanode.sync.behind.writes is true.
    </description>
  </property>

  <property>
    <name>dfs.datanode.transferTo.allowed</name>
    <value>true</value>
    <description>
      If false, break block transfers on 32-bit machines greater than
      or equal to 2GB into smaller chunks.
    </description>
  </property>

  <property>
    <name>dfs.ha.fencing.methods</name>
    <value></value>
    <description>
      A list of scripts or Java classes which will be used to fence
      the Active NameNode during a failover.  See the HDFS High
      Availability documentation for details on automatic HA
      configuration.
    </description>
  </property>

  <property>
    <name>dfs.ha.standby.checkpoints</name>
    <value>true</value>
    <description>
      If true, a NameNode in Standby state periodically takes a checkpoint
      of the namespace, saves it to its local storage and then upload to
      the remote NameNode.
    </description>
  </property>

  <property>
    <name>dfs.ha.zkfc.port</name>
    <value>8019</value>
    <description>
      The port number that the zookeeper failover controller RPC
      server binds to.
    </description>
  </property>

  <property>
    <name>dfs.journalnode.edits.dir</name>
    <value>/tmp/hadoop/dfs/journalnode/</value>
    <description>
      The directory where the journal edit files are stored.
    </description>
  </property>

  <property>
    <name>dfs.journalnode.enable.sync</name>
    <value>true</value>
    <description>
      If true, the journal nodes wil sync with each other. The journal nodes
      will periodically gossip with other journal nodes to compare edit log
      manifests and if they detect any missing log segment, they will download
      it from the other journal nodes.
    </description>
  </property>

  <property>
    <name>dfs.journalnode.sync.interval</name>
    <value>120000</value>
    <description>
      Time interval, in milliseconds, between two Journal Node syncs.
      This configuration takes effect only if the journalnode sync is enabled
      by setting the configuration parameter dfs.journalnode.enable.sync to true.
    </description>
  </property>

  <property>
    <name>dfs.journalnode.edit-cache-size.bytes</name>
    <value>1048576</value>
    <description>
      The size, in bytes, of the in-memory cache of edits to keep on the
      JournalNode. This cache is used to serve edits for tailing via the RPC-based
      mechanism, and is only enabled when dfs.ha.tail-edits.in-progress is true.
      Transactions range in size but are around 200 bytes on average, so the
      default of 1MB can store around 5000 transactions.
    </description>
  </property>

  <property>
    <name>dfs.journalnode.kerberos.internal.spnego.principal</name>
    <value></value>
    <description>
      Kerberos SPNEGO principal name used by the journal node.
    </description>
  </property>

  <property>
    <name>dfs.journalnode.kerberos.principal</name>
    <value></value>
    <description>
      Kerberos principal name for the journal node.
    </description>
  </property>

  <property>
    <name>dfs.journalnode.keytab.file</name>
    <value></value>
    <description>
      Kerberos keytab file for the journal node.
    </description>
  </property>

  <property>
    <name>dfs.ls.limit</name>
    <value>1000</value>
    <description>
      Limit the number of files printed by ls. If less or equal to
      zero, at most DFS_LIST_LIMIT_DEFAULT (= 1000) will be printed.
    </description>
  </property>

  <property>
    <name>dfs.mover.movedWinWidth</name>
    <value>5400000</value>
    <description>
      The minimum time interval, in milliseconds, that a block can be
      moved to another location again.
    </description>
  </property>

  <property>
    <name>dfs.mover.moverThreads</name>
    <value>1000</value>
    <description>
      Configure the balancer's mover thread pool size.
    </description>
  </property>

  <property>
    <name>dfs.mover.retry.max.attempts</name>
    <value>10</value>
    <description>
      The maximum number of retries before the mover consider the
      move failed.
    </description>
  </property>

  <property>
    <name>dfs.mover.keytab.enabled</name>
    <value>false</value>
    <description>
      Set to true to enable login using a keytab for Kerberized Hadoop.
    </description>
  </property>

  <property>
    <name>dfs.mover.address</name>
    <value>0.0.0.0:0</value>
    <description>
      The hostname used for a keytab based Kerberos login. Keytab based login
      can be enabled with dfs.mover.keytab.enabled.
    </description>
  </property>

  <property>
    <name>dfs.mover.keytab.file</name>
    <value></value>
    <description>
      The keytab file used by the Mover to login as its
      service principal. The principal name is configured with
      dfs.mover.kerberos.principal. Keytab based login can be
      enabled with dfs.mover.keytab.enabled.
    </description>
  </property>

  <property>
    <name>dfs.mover.kerberos.principal</name>
    <value></value>
    <description>
      The Mover principal. This is typically set to
      mover/_HOST@REALM.TLD. The Mover will substitute _HOST with its
      own fully qualified hostname at startup. The _HOST placeholder
      allows using the same configuration setting on different servers.
      Keytab based login can be enabled with dfs.mover.keytab.enabled.
    </description>
  </property>

  <property>
    <name>dfs.mover.max-no-move-interval</name>
    <value>60000</value>
    <description>
      If this specified amount of time has elapsed and no block has been moved
      out of a source DataNode, on more effort will be made to move blocks out of
      this DataNode in the current Mover iteration.
    </description>
  </property>

  <property>
    <name>dfs.namenode.audit.log.async</name>
    <value>false</value>
    <description>
      If true, enables asynchronous audit log.
    </description>
  </property>

  <property>
    <name>dfs.namenode.audit.log.token.tracking.id</name>
    <value>false</value>
    <description>
      If true, adds a tracking ID for all audit log events.
    </description>
  </property>

  <property>
    <name>dfs.namenode.available-space-block-placement-policy.balanced-space-preference-fraction</name>
    <value>0.6</value>
    <description>
      Only used when the dfs.block.replicator.classname is set to
      org.apache.hadoop.hdfs.server.blockmanagement.AvailableSpaceBlockPlacementPolicy.
      Special value between 0 and 1, noninclusive.  Increases chance of
      placing blocks on Datanodes with less disk space used.
    </description>
  </property>

  <property>
    <name>dfs.namenode.backup.dnrpc-address</name>
    <value></value>
    <description>
      Service RPC address for the backup Namenode.
    </description>
  </property>

  <property>
    <name>dfs.namenode.delegation.token.always-use</name>
    <value>false</value>
    <description>
      For testing.  Setting to true always allows the DT secret manager
      to be used, even if security is disabled.
    </description>
  </property>

  <property>
    <name>dfs.namenode.edits.asynclogging</name>
    <value>true</value>
    <description>
      If set to true, enables asynchronous edit logs in the Namenode.  If set
      to false, the Namenode uses the traditional synchronous edit logs.
    </description>
  </property>

  <property>
    <name>dfs.namenode.edits.dir.minimum</name>
    <value>1</value>
    <description>
      dfs.namenode.edits.dir includes both required directories
      (specified by dfs.namenode.edits.dir.required) and optional directories.

      The number of usable optional directories must be greater than or equal
      to this property.  If the number of usable optional directories falls
      below dfs.namenode.edits.dir.minimum, HDFS will issue an error.

      This property defaults to 1.
    </description>
  </property>

  <property>
    <name>dfs.namenode.edits.journal-plugin</name>
    <value></value>
    <description>
      When FSEditLog is creating JournalManagers from dfs.namenode.edits.dir,
      and it encounters a URI with a schema different to "file" it loads the
      name of the implementing class from
      "dfs.namenode.edits.journal-plugin.[schema]". This class must implement
      JournalManager and have a constructor which takes (Configuration, URI).
    </description>
  </property>

  <property>
    <name>dfs.namenode.file.close.num-committed-allowed</name>
    <value>0</value>
    <description>
      Normally a file can only be closed with all its blocks are committed.
      When this value is set to a positive integer N, a file can be closed
      when N blocks are committed and the rest complete.
    </description>
  </property>

  <property>
    <name>dfs.namenode.inode.attributes.provider.class</name>
    <value></value>
    <description>
      Name of class to use for delegating HDFS authorization.
    </description>
  </property>

  <property>
    <name>dfs.namenode.inode.attributes.provider.bypass.users</name>
    <value></value>
    <description>
      A list of user principals (in secure cluster) or user names (in insecure
      cluster) for whom the external attributes provider will be bypassed for all
      operations. This means file attributes stored in HDFS instead of the
      external provider will be used for permission checking and be returned when
      requested.
    </description>
  </property>

  <property>
    <name>dfs.namenode.max-num-blocks-to-log</name>
    <value>1000</value>
    <description>
      Puts a limit on the number of blocks printed to the log by the Namenode
      after a block report.
    </description>
  </property>

  <property>
    <name>dfs.namenode.max.op.size</name>
    <value>52428800</value>
    <description>
      Maximum opcode size in bytes.
    </description>
  </property>

  <property>
    <name>dfs.namenode.missing.checkpoint.periods.before.shutdown</name>
    <value>3</value>
    <description>
      The number of checkpoint period windows (as defined by the property
      dfs.namenode.checkpoint.period) allowed by the Namenode to perform
      saving the namespace before shutdown.
    </description>
  </property>

  <property>
    <name>dfs.namenode.name.cache.threshold</name>
    <value>10</value>
    <description>
      Frequently accessed files that are accessed more times than this
      threshold are cached in the FSDirectory nameCache.
    </description>
  </property>

  <property>
    <name>dfs.namenode.replication.max-streams</name>
    <value>2</value>
    <description>
      Hard limit for the number of highest-priority replication streams.
    </description>
  </property>

  <property>
    <name>dfs.namenode.replication.max-streams-hard-limit</name>
    <value>4</value>
    <description>
      Hard limit for all replication streams.
    </description>
  </property>

  <property>
    <name>dfs.namenode.reconstruction.pending.timeout-sec</name>
    <value>300</value>
    <description>
      Timeout in seconds for block reconstruction.  If this value is 0 or less,
      then it will default to 5 minutes.
    </description>
  </property>

  <property>
    <name>dfs.namenode.stale.datanode.minimum.interval</name>
    <value>3</value>
    <description>
      Minimum number of missed heartbeats intervals for a datanode to
      be marked stale by the Namenode.  The actual interval is calculated as
      (dfs.namenode.stale.datanode.minimum.interval * dfs.heartbeat.interval)
      in seconds.  If this value is greater than the property
      dfs.namenode.stale.datanode.interval, then the calculated value above
      is used.
    </description>
  </property>

  <property>
    <name>dfs.namenode.storageinfo.defragment.timeout.ms</name>
    <value>4</value>
    <description>
      Timeout value in ms for the StorageInfo compaction run.
    </description>
  </property>

  <property>
    <name>dfs.namenode.storageinfo.defragment.interval.ms</name>
    <value>600000</value>
    <description>
      The thread for checking the StorageInfo for defragmentation will
      run periodically.  The time between runs is determined by this
      property.
    </description>
  </property>

  <property>
    <name>dfs.namenode.storageinfo.defragment.ratio</name>
    <value>0.75</value>
    <description>
      The defragmentation threshold for the StorageInfo.
    </description>
  </property>

  <property>
    <name>dfs.namenode.snapshot.capture.openfiles</name>
    <value>false</value>
    <description>
      If true, snapshots taken will have an immutable shared copy of
      the open files that have valid leases. Even after the open files
      grow or shrink in size, snapshot will always have the previous
      point-in-time version of the open files, just like all other
      closed files. Default is false.
      Note: The file length captured for open files in snapshot is
      whats recorded in NameNode at the time of snapshot and it may
      be shorter than what the client has written till then. In order
      to capture the latest length, the client can call hflush/hsync
      with the flag SyncFlag.UPDATE_LENGTH on the open files handles.
    </description>
  </property>

  <property>
    <name>dfs.namenode.snapshot.skip.capture.accesstime-only-change</name>
    <value>false</value>
    <description>
      If accessTime of a file/directory changed but there is no other
      modification made to the file/directory, the changed accesstime will
      not be captured in next snapshot. However, if there is other modification
      made to the file/directory, the latest access time will be captured
      together with the modification in next snapshot.
    </description>
  </property>

  <property>
    <name>dfs.namenode.snapshotdiff.allow.snap-root-descendant</name>
    <value>true</value>
    <description>
      If enabled, snapshotDiff command can be run for any descendant directory
      under a snapshot root directory and the diff calculation will be scoped
      to the given descendant directory. Otherwise, snapshot diff command can
      only be run for a snapshot root directory.
    </description>
  </property>

  <property>
    <name>dfs.namenode.snapshotdiff.listing.limit</name>
    <value>1000</value>
    <description>
      Limit the number of entries generated by getSnapshotDiffReportListing within
      one rpc call to the namenode.If less or equal to zero, at most
      DFS_NAMENODE_SNAPSHOT_DIFF_LISTING_LIMIT_DEFAULT (= 1000) will be sent
      across to the client within one rpc call.
    </description>
  </property>
  <property>
    <name>dfs.namenode.snapshot.max.limit</name>
    <value>65536</value>
    <description>
      Limits the maximum number of snapshots allowed per snapshottable
      directory.If the configuration is not set, the default limit
      for maximum no of snapshots allowed is 65536.
    </description>
  </property>

  <property>
    <name>dfs.namenode.snapshot.skiplist.max.levels</name>
    <value>0</value>
    <description>
      Maximum no of the skip levels to be maintained in the skip list for
      storing directory snapshot diffs. By default, it is set to 0 and a linear
      list will be used to store the directory snapshot diffs.
    </description>
  </property>
  <property>
    <name>dfs.namenode.snapshot.skiplist.interval</name>
    <value>10</value>
    <description>
      The interval after which the skip levels will be formed in the skip list
      for storing directory snapshot diffs. By default, value is set to 10.
    </description>
  </property>

  <property>
    <name>dfs.pipeline.ecn</name>
    <value>false</value>
    <description>
      If true, allows ECN (explicit congestion notification) from the
      Datanode.
    </description>
  </property>

  <property>
    <name>dfs.qjournal.accept-recovery.timeout.ms</name>
    <value>120000</value>
    <description>
      Quorum timeout in milliseconds during accept phase of
      recovery/synchronization for a specific segment.
    </description>
  </property>

  <property>
    <name>dfs.qjournal.finalize-segment.timeout.ms</name>
    <value>120000</value>
    <description>
      Quorum timeout in milliseconds during finalizing for a specific
      segment.
    </description>
  </property>

  <property>
    <name>dfs.qjournal.get-journal-state.timeout.ms</name>
    <value>120000</value>
    <description>
      Timeout in milliseconds when calling getJournalState().
      JournalNodes.
    </description>
  </property>

  <property>
    <name>dfs.qjournal.new-epoch.timeout.ms</name>
    <value>120000</value>
    <description>
      Timeout in milliseconds when getting an epoch number for write
      access to JournalNodes.
    </description>
  </property>

  <property>
    <name>dfs.qjournal.prepare-recovery.timeout.ms</name>
    <value>120000</value>
    <description>
      Quorum timeout in milliseconds during preparation phase of
      recovery/synchronization for a specific segment.
    </description>
  </property>

  <property>
    <name>dfs.qjournal.queued-edits.limit.mb</name>
    <value>10</value>
    <description>
      Queue size in MB for quorum journal edits.
    </description>
  </property>

  <property>
    <name>dfs.qjournal.select-input-streams.timeout.ms</name>
    <value>20000</value>
    <description>
      Timeout in milliseconds for accepting streams from JournalManagers.
    </description>
  </property>

  <property>
    <name>dfs.qjournal.start-segment.timeout.ms</name>
    <value>20000</value>
    <description>
      Quorum timeout in milliseconds for starting a log segment.
    </description>
  </property>

  <property>
    <name>dfs.qjournal.write-txns.timeout.ms</name>
    <value>20000</value>
    <description>
      Write timeout in milliseconds when writing to a quorum of remote
      journals.
    </description>
  </property>

  <property>
    <name>dfs.qjournal.http.open.timeout.ms</name>
    <value>60000</value>
    <description>
      Timeout in milliseconds when open a new HTTP connection to remote
      journals.
    </description>
  </property>

  <property>
    <name>dfs.qjournal.http.read.timeout.ms</name>
    <value>60000</value>
    <description>
      Timeout in milliseconds when reading from a HTTP connection from remote
      journals.
    </description>
  </property>

  <property>
    <name>dfs.quota.by.storage.type.enabled</name>
    <value>true</value>
    <description>
      If true, enables quotas based on storage type.
    </description>
  </property>

  <property>
    <name>dfs.secondary.namenode.kerberos.principal</name>
    <value></value>
    <description>
      Kerberos principal name for the Secondary NameNode.
    </description>
  </property>

  <property>
    <name>dfs.secondary.namenode.keytab.file</name>
    <value></value>
    <description>
      Kerberos keytab file for the Secondary NameNode.
    </description>
  </property>

  <property>
    <name>dfs.web.authentication.filter</name>
    <value>org.apache.hadoop.hdfs.web.AuthFilter</value>
    <description>
      Authentication filter class used for WebHDFS.
    </description>
  </property>

  <property>
    <name>dfs.web.authentication.simple.anonymous.allowed</name>
    <value></value>
    <description>
      If true, allow anonymous user to access WebHDFS. Set to
      false to disable anonymous authentication.
    </description>
  </property>

  <property>
    <name>dfs.web.ugi</name>
    <value></value>
    <description>
      dfs.web.ugi is deprecated. Use hadoop.http.staticuser.user instead.
    </description>
  </property>

  <property>
    <name>dfs.webhdfs.netty.high.watermark</name>
    <value>65535</value>
    <description>
      High watermark configuration to Netty for Datanode WebHdfs.
    </description>
  </property>

  <property>
    <name>dfs.webhdfs.netty.low.watermark</name>
    <value>32768</value>
    <description>
      Low watermark configuration to Netty for Datanode WebHdfs.
    </description>
  </property>

  <property>
    <name>dfs.webhdfs.oauth2.access.token.provider</name>
    <value></value>
    <description>
      Access token provider class for WebHDFS using OAuth2.
      Defaults to org.apache.hadoop.hdfs.web.oauth2.ConfCredentialBasedAccessTokenProvider.
    </description>
  </property>

  <property>
    <name>dfs.webhdfs.oauth2.client.id</name>
    <value></value>
    <description>
      Client id used to obtain access token with either credential or
      refresh token.
    </description>
  </property>

  <property>
    <name>dfs.webhdfs.oauth2.enabled</name>
    <value>false</value>
    <description>
      If true, enables OAuth2 in WebHDFS
    </description>
  </property>

  <property>
    <name>dfs.webhdfs.oauth2.refresh.url</name>
    <value></value>
    <description>
      URL against which to post for obtaining bearer token with
      either credential or refresh token.
    </description>
  </property>

  <property>
    <name>ssl.server.keystore.keypassword</name>
    <value></value>
    <description>
      Keystore key password for HTTPS SSL configuration
    </description>
  </property>

  <property>
    <name>ssl.server.keystore.location</name>
    <value></value>
    <description>
      Keystore location for HTTPS SSL configuration
    </description>
  </property>

  <property>
    <name>ssl.server.keystore.password</name>
    <value></value>
    <description>
      Keystore password for HTTPS SSL configuration
    </description>
  </property>

  <property>
    <name>ssl.server.truststore.location</name>
    <value></value>
    <description>
      Truststore location for HTTPS SSL configuration
    </description>
  </property>

  <property>
    <name>ssl.server.truststore.password</name>
    <value></value>
    <description>
      Truststore password for HTTPS SSL configuration
    </description>
  </property>

<!--Disk baalncer properties-->
  <property>
    <name>dfs.disk.balancer.max.disk.throughputInMBperSec</name>
    <value>10</value>
    <description>Maximum disk bandwidth used by diskbalancer
      during read from a source disk. The unit is MB/sec.
    </description>
  </property>

  <property>
    <name>dfs.disk.balancer.block.tolerance.percent</name>
    <value>10</value>
    <description>
      When a disk balancer copy operation is proceeding, the datanode is still
      active. So it might not be possible to move the exactly specified
      amount of data. So tolerance allows us to define a percentage which
      defines a good enough move.
    </description>
  </property>

  <property>
    <name>dfs.disk.balancer.max.disk.errors</name>
    <value>5</value>
    <description>
      During a block move from a source to destination disk, we might
      encounter various errors. This defines how many errors we can tolerate
      before we declare a move between 2 disks (or a step) has failed.
    </description>
  </property>

  <property>
    <name>dfs.disk.balancer.plan.valid.interval</name>
    <value>1d</value>
    <description>
      Maximum amount of time disk balancer plan is valid. This setting
      supports multiple time unit suffixes as described in
      dfs.heartbeat.interval. If no suffix is specified then milliseconds
      is assumed.
    </description>
  </property>


  <property>
    <name>dfs.disk.balancer.enabled</name>
    <value>true</value>
    <description>
        This enables the diskbalancer feature on a cluster. By default, disk
      balancer is enabled.
    </description>
  </property>

  <property>
    <name>dfs.disk.balancer.plan.threshold.percent</name>
    <value>10</value>
    <description>
      The percentage threshold value for volume Data Density in a plan.
      If the absolute value of volume Data Density which is out of
      threshold value in a node, it means that the volumes corresponding to
      the disks should do the balancing in the plan. The default value is 10.
    </description>
  </property>

  <property>
    <name>dfs.namenode.provided.enabled</name>
    <value>false</value>
    <description>
      Enables the Namenode to handle provided storages.
    </description>
  </property>

  <property>
    <name>dfs.provided.storage.id</name>
    <value>DS-PROVIDED</value>
    <description>
      The storage ID used for provided stores.
    </description>
  </property>

  <property>
    <name>dfs.provided.aliasmap.class</name>
    <value>org.apache.hadoop.hdfs.server.common.blockaliasmap.impl.TextFileRegionAliasMap</value>
    <description>
      The class that is used to specify the input format of the blocks on
      provided storages. The default is
      org.apache.hadoop.hdfs.server.common.blockaliasmap.impl.TextFileRegionAliasMap which uses
      file regions to describe blocks. The file regions are specified as a
      delimited text file. Each file region is a 6-tuple containing the
      block id, remote file path, offset into file, length of block, the
      block pool id containing the block, and the generation stamp of the
      block.
    </description>
  </property>

  <property>
    <name>dfs.provided.aliasmap.inmemory.batch-size</name>
    <value>500</value>
    <description>
      The batch size when iterating over the database backing the aliasmap
    </description>
  </property>

  <property>
    <name>dfs.provided.aliasmap.inmemory.dnrpc-address</name>
    <value>0.0.0.0:50200</value>
    <description>
      The address where the aliasmap server will be running
    </description>
  </property>

  <property>
    <name>dfs.provided.aliasmap.inmemory.leveldb.dir</name>
    <value>/tmp</value>
    <description>
      The directory where the leveldb files will be kept
    </description>
  </property>

  <property>
    <name>dfs.provided.aliasmap.inmemory.enabled</name>
    <value>false</value>
    <description>
      Don't use the aliasmap by default. Some tests will fail
      because they try to start the namenode twice with the
      same parameters if you turn it on.
    </description>
  </property>

  <property>
    <name>dfs.provided.aliasmap.text.delimiter</name>
    <value>,</value>
    <description>
        The delimiter used when the provided block map is specified as
        a text file.
    </description>
  </property>

  <property>
    <name>dfs.provided.aliasmap.text.read.file</name>
    <value></value>
    <description>
        The path specifying the provided block map as a text file, specified as
        a URI.
    </description>
  </property>

  <property>
    <name>dfs.provided.aliasmap.text.codec</name>
    <value></value>
    <description>
        The codec used to de-compress the provided block map.
    </description>
  </property>

  <property>
    <name>dfs.provided.aliasmap.text.write.dir</name>
    <value></value>
    <description>
        The path to which the provided block map should be written as a text
        file, specified as a URI.
    </description>
  </property>

  <property>
    <name>dfs.provided.aliasmap.leveldb.path</name>
    <value></value>
    <description>
      The read/write path for the leveldb-based alias map
      (org.apache.hadoop.hdfs.server.common.blockaliasmap.impl.LevelDBFileRegionAliasMap).
      The path has to be explicitly configured when this alias map is used.
    </description>
  </property>

  <property>
    <name>dfs.provided.aliasmap.load.retries</name>
    <value>0</value>
    <description>
      The number of retries on the Datanode to load the provided aliasmap;
      defaults to 0.
    </description>
  </property>

  <property>
    <name>dfs.lock.suppress.warning.interval</name>
    <value>10s</value>
    <description>Instrumentation reporting long critical sections will suppress
      consecutive warnings within this interval.</description>
  </property>

  <property>
    <name>httpfs.buffer.size</name>
    <value>4096</value>
    <description>
      The size buffer to be used when creating or opening httpfs filesystem IO stream.
    </description>
  </property>

  <property>
    <name>dfs.webhdfs.use.ipc.callq</name>
    <value>true</value>
    <description>Enables routing of webhdfs calls through rpc
      call queue</description>
  </property>

  <property>
    <name>dfs.datanode.disk.check.min.gap</name>
    <value>15m</value>
    <description>
      The minimum gap between two successive checks of the same DataNode
      volume. This setting supports multiple time unit suffixes as described
      in dfs.heartbeat.interval. If no suffix is specified then milliseconds
      is assumed.
    </description>
  </property>

  <property>
    <name>dfs.datanode.disk.check.timeout</name>
    <value>10m</value>
    <description>
      Maximum allowed time for a disk check to complete during DataNode
      startup. If the check does not complete within this time interval
      then the disk is declared as failed. This setting supports
      multiple time unit suffixes as described in dfs.heartbeat.interval.
      If no suffix is specified then milliseconds is assumed.
    </description>
  </property>

  <property>
    <name>dfs.use.dfs.network.topology</name>
    <value>true</value>
    <description>
      Enables DFSNetworkTopology to choose nodes for placing replicas.
      When enabled, NetworkTopology will be instantiated as class defined in
      property dfs.net.topology.impl, otherwise NetworkTopology will be
      instantiated as class defined in property net.topology.impl.
    </description>
  </property>

  <property>
    <name>dfs.net.topology.impl</name>
    <value>org.apache.hadoop.hdfs.net.DFSNetworkTopology</value>
    <description>
      The implementation class of NetworkTopology used in HDFS. By default,
      the class org.apache.hadoop.hdfs.net.DFSNetworkTopology is specified and
      used in block placement.
      This property only works when dfs.use.dfs.network.topology is true.
    </description>
  </property>

  <property>
    <name>dfs.qjm.operations.timeout</name>
    <value>60s</value>
    <description>
      Common key to set timeout for related operations in
      QuorumJournalManager. This setting supports multiple time unit suffixes
      as described in dfs.heartbeat.interval.
      If no suffix is specified then milliseconds is assumed.
    </description>
  </property>

  <property>
    <name>dfs.reformat.disabled</name>
    <value>false</value>
    <description>
      Disable reformat of NameNode. If it's value is set to "true"
      and metadata directories already exist then attempt to format NameNode
      will throw NameNodeFormatException.
    </description>
  </property>

  <property>
    <name>dfs.namenode.block.deletion.increment</name>
    <value>1000</value>
    <description>
      The number of block deletion increment.
      This setting will control the block increment deletion rate to
      ensure that other waiters on the lock can get in.
    </description>
  </property>

  <property>
    <name>dfs.namenode.rpc-address.auxiliary-ports</name>
    <value></value>
    <description>
      A comma separated list of auxiliary ports for the NameNode to listen on.
      This allows exposing multiple NN addresses to clients.
      Particularly, it is used to enforce different SASL levels on different ports.
      Empty list indicates that auxiliary ports are disabled.
    </description>
  </property>

  <property>
    <name>dfs.namenode.send.qop.enabled</name>
    <value>false</value>
    <description>
      A boolean specifies whether NameNode should encrypt the established QOP
      and include it in block token. The encrypted QOP will be used by DataNode
      as target QOP, overwriting DataNode configuration. This ensures DataNode
      will use exactly the same QOP NameNode and client has already agreed on.
    </description>
  </property>

  <property>
    <name>dfs.encrypt.data.overwrite.downstream.derived.qop</name>
    <value>false</value>
    <description>
      A boolean specifies whether DN should overwrite the downstream
      QOP in a write pipeline. This is used in the case where client
      talks to first DN with a QOP, but inter-DN communication needs to be
      using a different QOP. If set to false, the default behaviour is that
      inter-DN communication will use the same QOP as client-DN connection.
    </description>
  </property>

  <property>
    <name>dfs.encrypt.data.overwrite.downstream.new.qop</name>
    <value></value>
    <description>
      When dfs.datanode.overwrite.downstream.derived.qop is set to true,
      this configuration specifies the new QOP to be used to overwrite
      inter-DN QOP.
    </description>
  </property>

  <property>
    <name>dfs.namenode.blockreport.queue.size</name>
    <value>1024</value>
    <description>
      The queue size of BlockReportProcessingThread in BlockManager.
    </description>
  </property>
</configuration>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • 157
  • 158
  • 159
  • 160
  • 161
  • 162
  • 163
  • 164
  • 165
  • 166
  • 167
  • 168
  • 169
  • 170
  • 171
  • 172
  • 173
  • 174
  • 175
  • 176
  • 177
  • 178
  • 179
  • 180
  • 181
  • 182
  • 183
  • 184
  • 185
  • 186
  • 187
  • 188
  • 189
  • 190
  • 191
  • 192
  • 193
  • 194
  • 195
  • 196
  • 197
  • 198
  • 199
  • 200
  • 201
  • 202
  • 203
  • 204
  • 205
  • 206
  • 207
  • 208
  • 209
  • 210
  • 211
  • 212
  • 213
  • 214
  • 215
  • 216
  • 217
  • 218
  • 219
  • 220
  • 221
  • 222
  • 223
  • 224
  • 225
  • 226
  • 227
  • 228
  • 229
  • 230
  • 231
  • 232
  • 233
  • 234
  • 235
  • 236
  • 237
  • 238
  • 239
  • 240
  • 241
  • 242
  • 243
  • 244
  • 245
  • 246
  • 247
  • 248
  • 249
  • 250
  • 251
  • 252
  • 253
  • 254
  • 255
  • 256
  • 257
  • 258
  • 259
  • 260
  • 261
  • 262
  • 263
  • 264
  • 265
  • 266
  • 267
  • 268
  • 269
  • 270
  • 271
  • 272
  • 273
  • 274
  • 275
  • 276
  • 277
  • 278
  • 279
  • 280
  • 281
  • 282
  • 283
  • 284
  • 285
  • 286
  • 287
  • 288
  • 289
  • 290
  • 291
  • 292
  • 293
  • 294
  • 295
  • 296
  • 297
  • 298
  • 299
  • 300
  • 301
  • 302
  • 303
  • 304
  • 305
  • 306
  • 307
  • 308
  • 309
  • 310
  • 311
  • 312
  • 313
  • 314
  • 315
  • 316
  • 317
  • 318
  • 319
  • 320
  • 321
  • 322
  • 323
  • 324
  • 325
  • 326
  • 327
  • 328
  • 329
  • 330
  • 331
  • 332
  • 333
  • 334
  • 335
  • 336
  • 337
  • 338
  • 339
  • 340
  • 341
  • 342
  • 343
  • 344
  • 345
  • 346
  • 347
  • 348
  • 349
  • 350
  • 351
  • 352
  • 353
  • 354
  • 355
  • 356
  • 357
  • 358
  • 359
  • 360
  • 361
  • 362
  • 363
  • 364
  • 365
  • 366
  • 367
  • 368
  • 369
  • 370
  • 371
  • 372
  • 373
  • 374
  • 375
  • 376
  • 377
  • 378
  • 379
  • 380
  • 381
  • 382
  • 383
  • 384
  • 385
  • 386
  • 387
  • 388
  • 389
  • 390
  • 391
  • 392
  • 393
  • 394
  • 395
  • 396
  • 397
  • 398
  • 399
  • 400
  • 401
  • 402
  • 403
  • 404
  • 405
  • 406
  • 407
  • 408
  • 409
  • 410
  • 411
  • 412
  • 413
  • 414
  • 415
  • 416
  • 417
  • 418
  • 419
  • 420
  • 421
  • 422
  • 423
  • 424
  • 425
  • 426
  • 427
  • 428
  • 429
  • 430
  • 431
  • 432
  • 433
  • 434
  • 435
  • 436
  • 437
  • 438
  • 439
  • 440
  • 441
  • 442
  • 443
  • 444
  • 445
  • 446
  • 447
  • 448
  • 449
  • 450
  • 451
  • 452
  • 453
  • 454
  • 455
  • 456
  • 457
  • 458
  • 459
  • 460
  • 461
  • 462
  • 463
  • 464
  • 465
  • 466
  • 467
  • 468
  • 469
  • 470
  • 471
  • 472
  • 473
  • 474
  • 475
  • 476
  • 477
  • 478
  • 479
  • 480
  • 481
  • 482
  • 483
  • 484
  • 485
  • 486
  • 487
  • 488
  • 489
  • 490
  • 491
  • 492
  • 493
  • 494
  • 495
  • 496
  • 497
  • 498
  • 499
  • 500
  • 501
  • 502
  • 503
  • 504
  • 505
  • 506
  • 507
  • 508
  • 509
  • 510
  • 511
  • 512
  • 513
  • 514
  • 515
  • 516
  • 517
  • 518
  • 519
  • 520
  • 521
  • 522
  • 523
  • 524
  • 525
  • 526
  • 527
  • 528
  • 529
  • 530
  • 531
  • 532
  • 533
  • 534
  • 535
  • 536
  • 537
  • 538
  • 539
  • 540
  • 541
  • 542
  • 543
  • 544
  • 545
  • 546
  • 547
  • 548
  • 549
  • 550
  • 551
  • 552
  • 553
  • 554
  • 555
  • 556
  • 557
  • 558
  • 559
  • 560
  • 561
  • 562
  • 563
  • 564
  • 565
  • 566
  • 567
  • 568
  • 569
  • 570
  • 571
  • 572
  • 573
  • 574
  • 575
  • 576
  • 577
  • 578
  • 579
  • 580
  • 581
  • 582
  • 583
  • 584
  • 585
  • 586
  • 587
  • 588
  • 589
  • 590
  • 591
  • 592
  • 593
  • 594
  • 595
  • 596
  • 597
  • 598
  • 599
  • 600
  • 601
  • 602
  • 603
  • 604
  • 605
  • 606
  • 607
  • 608
  • 609
  • 610
  • 611
  • 612
  • 613
  • 614
  • 615
  • 616
  • 617
  • 618
  • 619
  • 620
  • 621
  • 622
  • 623
  • 624
  • 625
  • 626
  • 627
  • 628
  • 629
  • 630
  • 631
  • 632
  • 633
  • 634
  • 635
  • 636
  • 637
  • 638
  • 639
  • 640
  • 641
  • 642
  • 643
  • 644
  • 645
  • 646
  • 647
  • 648
  • 649
  • 650
  • 651
  • 652
  • 653
  • 654
  • 655
  • 656
  • 657
  • 658
  • 659
  • 660
  • 661
  • 662
  • 663
  • 664
  • 665
  • 666
  • 667
  • 668
  • 669
  • 670
  • 671
  • 672
  • 673
  • 674
  • 675
  • 676
  • 677
  • 678
  • 679
  • 680
  • 681
  • 682
  • 683
  • 684
  • 685
  • 686
  • 687
  • 688
  • 689
  • 690
  • 691
  • 692
  • 693
  • 694
  • 695
  • 696
  • 697
  • 698
  • 699
  • 700
  • 701
  • 702
  • 703
  • 704
  • 705
  • 706
  • 707
  • 708
  • 709
  • 710
  • 711
  • 712
  • 713
  • 714
  • 715
  • 716
  • 717
  • 718
  • 719
  • 720
  • 721
  • 722
  • 723
  • 724
  • 725
  • 726
  • 727
  • 728
  • 729
  • 730
  • 731
  • 732
  • 733
  • 734
  • 735
  • 736
  • 737
  • 738
  • 739
  • 740
  • 741
  • 742
  • 743
  • 744
  • 745
  • 746
  • 747
  • 748
  • 749
  • 750
  • 751
  • 752
  • 753
  • 754
  • 755
  • 756
  • 757
  • 758
  • 759
  • 760
  • 761
  • 762
  • 763
  • 764
  • 765
  • 766
  • 767
  • 768
  • 769
  • 770
  • 771
  • 772
  • 773
  • 774
  • 775
  • 776
  • 777
  • 778
  • 779
  • 780
  • 781
  • 782
  • 783
  • 784
  • 785
  • 786
  • 787
  • 788
  • 789
  • 790
  • 791
  • 792
  • 793
  • 794
  • 795
  • 796
  • 797
  • 798
  • 799
  • 800
  • 801
  • 802
  • 803
  • 804
  • 805
  • 806
  • 807
  • 808
  • 809
  • 810
  • 811
  • 812
  • 813
  • 814
  • 815
  • 816
  • 817
  • 818
  • 819
  • 820
  • 821
  • 822
  • 823
  • 824
  • 825
  • 826
  • 827
  • 828
  • 829
  • 830
  • 831
  • 832
  • 833
  • 834
  • 835
  • 836
  • 837
  • 838
  • 839
  • 840
  • 841
  • 842
  • 843
  • 844
  • 845
  • 846
  • 847
  • 848
  • 849
  • 850
  • 851
  • 852
  • 853
  • 854
  • 855
  • 856
  • 857
  • 858
  • 859
  • 860
  • 861
  • 862
  • 863
  • 864
  • 865
  • 866
  • 867
  • 868
  • 869
  • 870
  • 871
  • 872
  • 873
  • 874
  • 875
  • 876
  • 877
  • 878
  • 879
  • 880
  • 881
  • 882
  • 883
  • 884
  • 885
  • 886
  • 887
  • 888
  • 889
  • 890
  • 891
  • 892
  • 893
  • 894
  • 895
  • 896
  • 897
  • 898
  • 899
  • 900
  • 901
  • 902
  • 903
  • 904
  • 905
  • 906
  • 907
  • 908
  • 909
  • 910
  • 911
  • 912
  • 913
  • 914
  • 915
  • 916
  • 917
  • 918
  • 919
  • 920
  • 921
  • 922
  • 923
  • 924
  • 925
  • 926
  • 927
  • 928
  • 929
  • 930
  • 931
  • 932
  • 933
  • 934
  • 935
  • 936
  • 937
  • 938
  • 939
  • 940
  • 941
  • 942
  • 943
  • 944
  • 945
  • 946
  • 947
  • 948
  • 949
  • 950
  • 951
  • 952
  • 953
  • 954
  • 955
  • 956
  • 957
  • 958
  • 959
  • 960
  • 961
  • 962
  • 963
  • 964
  • 965
  • 966
  • 967
  • 968
  • 969
  • 970
  • 971
  • 972
  • 973
  • 974
  • 975
  • 976
  • 977
  • 978
  • 979
  • 980
  • 981
  • 982
  • 983
  • 984
  • 985
  • 986
  • 987
  • 988
  • 989
  • 990
  • 991
  • 992
  • 993
  • 994
  • 995
  • 996
  • 997
  • 998
  • 999
  • 1000
  • 1001
  • 1002
  • 1003
  • 1004
  • 1005
  • 1006
  • 1007
  • 1008
  • 1009
  • 1010
  • 1011
  • 1012
  • 1013
  • 1014
  • 1015
  • 1016
  • 1017
  • 1018
  • 1019
  • 1020
  • 1021
  • 1022
  • 1023
  • 1024
  • 1025
  • 1026
  • 1027
  • 1028
  • 1029
  • 1030
  • 1031
  • 1032
  • 1033
  • 1034
  • 1035
  • 1036
  • 1037
  • 1038
  • 1039
  • 1040
  • 1041
  • 1042
  • 1043
  • 1044
  • 1045
  • 1046
  • 1047
  • 1048
  • 1049
  • 1050
  • 1051
  • 1052
  • 1053
  • 1054
  • 1055
  • 1056
  • 1057
  • 1058
  • 1059
  • 1060
  • 1061
  • 1062
  • 1063
  • 1064
  • 1065
  • 1066
  • 1067
  • 1068
  • 1069
  • 1070
  • 1071
  • 1072
  • 1073
  • 1074
  • 1075
  • 1076
  • 1077
  • 1078
  • 1079
  • 1080
  • 1081
  • 1082
  • 1083
  • 1084
  • 1085
  • 1086
  • 1087
  • 1088
  • 1089
  • 1090
  • 1091
  • 1092
  • 1093
  • 1094
  • 1095
  • 1096
  • 1097
  • 1098
  • 1099
  • 1100
  • 1101
  • 1102
  • 1103
  • 1104
  • 1105
  • 1106
  • 1107
  • 1108
  • 1109
  • 1110
  • 1111
  • 1112
  • 1113
  • 1114
  • 1115
  • 1116
  • 1117
  • 1118
  • 1119
  • 1120
  • 1121
  • 1122
  • 1123
  • 1124
  • 1125
  • 1126
  • 1127
  • 1128
  • 1129
  • 1130
  • 1131
  • 1132
  • 1133
  • 1134
  • 1135
  • 1136
  • 1137
  • 1138
  • 1139
  • 1140
  • 1141
  • 1142
  • 1143
  • 1144
  • 1145
  • 1146
  • 1147
  • 1148
  • 1149
  • 1150
  • 1151
  • 1152
  • 1153
  • 1154
  • 1155
  • 1156
  • 1157
  • 1158
  • 1159
  • 1160
  • 1161
  • 1162
  • 1163
  • 1164
  • 1165
  • 1166
  • 1167
  • 1168
  • 1169
  • 1170
  • 1171
  • 1172
  • 1173
  • 1174
  • 1175
  • 1176
  • 1177
  • 1178
  • 1179
  • 1180
  • 1181
  • 1182
  • 1183
  • 1184
  • 1185
  • 1186
  • 1187
  • 1188
  • 1189
  • 1190
  • 1191
  • 1192
  • 1193
  • 1194
  • 1195
  • 1196
  • 1197
  • 1198
  • 1199
  • 1200
  • 1201
  • 1202
  • 1203
  • 1204
  • 1205
  • 1206
  • 1207
  • 1208
  • 1209
  • 1210
  • 1211
  • 1212
  • 1213
  • 1214
  • 1215
  • 1216
  • 1217
  • 1218
  • 1219
  • 1220
  • 1221
  • 1222
  • 1223
  • 1224
  • 1225
  • 1226
  • 1227
  • 1228
  • 1229
  • 1230
  • 1231
  • 1232
  • 1233
  • 1234
  • 1235
  • 1236
  • 1237
  • 1238
  • 1239
  • 1240
  • 1241
  • 1242
  • 1243
  • 1244
  • 1245
  • 1246
  • 1247
  • 1248
  • 1249
  • 1250
  • 1251
  • 1252
  • 1253
  • 1254
  • 1255
  • 1256
  • 1257
  • 1258
  • 1259
  • 1260
  • 1261
  • 1262
  • 1263
  • 1264
  • 1265
  • 1266
  • 1267
  • 1268
  • 1269
  • 1270
  • 1271
  • 1272
  • 1273
  • 1274
  • 1275
  • 1276
  • 1277
  • 1278
  • 1279
  • 1280
  • 1281
  • 1282
  • 1283
  • 1284
  • 1285
  • 1286
  • 1287
  • 1288
  • 1289
  • 1290
  • 1291
  • 1292
  • 1293
  • 1294
  • 1295
  • 1296
  • 1297
  • 1298
  • 1299
  • 1300
  • 1301
  • 1302
  • 1303
  • 1304
  • 1305
  • 1306
  • 1307
  • 1308
  • 1309
  • 1310
  • 1311
  • 1312
  • 1313
  • 1314
  • 1315
  • 1316
  • 1317
  • 1318
  • 1319
  • 1320
  • 1321
  • 1322
  • 1323
  • 1324
  • 1325
  • 1326
  • 1327
  • 1328
  • 1329
  • 1330
  • 1331
  • 1332
  • 1333
  • 1334
  • 1335
  • 1336
  • 1337
  • 1338
  • 1339
  • 1340
  • 1341
  • 1342
  • 1343
  • 1344
  • 1345
  • 1346
  • 1347
  • 1348
  • 1349
  • 1350
  • 1351
  • 1352
  • 1353
  • 1354
  • 1355
  • 1356
  • 1357
  • 1358
  • 1359
  • 1360
  • 1361
  • 1362
  • 1363
  • 1364
  • 1365
  • 1366
  • 1367
  • 1368
  • 1369
  • 1370
  • 1371
  • 1372
  • 1373
  • 1374
  • 1375
  • 1376
  • 1377
  • 1378
  • 1379
  • 1380
  • 1381
  • 1382
  • 1383
  • 1384
  • 1385
  • 1386
  • 1387
  • 1388
  • 1389
  • 1390
  • 1391
  • 1392
  • 1393
  • 1394
  • 1395
  • 1396
  • 1397
  • 1398
  • 1399
  • 1400
  • 1401
  • 1402
  • 1403
  • 1404
  • 1405
  • 1406
  • 1407
  • 1408
  • 1409
  • 1410
  • 1411
  • 1412
  • 1413
  • 1414
  • 1415
  • 1416
  • 1417
  • 1418
  • 1419
  • 1420
  • 1421
  • 1422
  • 1423
  • 1424
  • 1425
  • 1426
  • 1427
  • 1428
  • 1429
  • 1430
  • 1431
  • 1432
  • 1433
  • 1434
  • 1435
  • 1436
  • 1437
  • 1438
  • 1439
  • 1440
  • 1441
  • 1442
  • 1443
  • 1444
  • 1445
  • 1446
  • 1447
  • 1448
  • 1449
  • 1450
  • 1451
  • 1452
  • 1453
  • 1454
  • 1455
  • 1456
  • 1457
  • 1458
  • 1459
  • 1460
  • 1461
  • 1462
  • 1463
  • 1464
  • 1465
  • 1466
  • 1467
  • 1468
  • 1469
  • 1470
  • 1471
  • 1472
  • 1473
  • 1474
  • 1475
  • 1476
  • 1477
  • 1478
  • 1479
  • 1480
  • 1481
  • 1482
  • 1483
  • 1484
  • 1485
  • 1486
  • 1487
  • 1488
  • 1489
  • 1490
  • 1491
  • 1492
  • 1493
  • 1494
  • 1495
  • 1496
  • 1497
  • 1498
  • 1499
  • 1500
  • 1501
  • 1502
  • 1503
  • 1504
  • 1505
  • 1506
  • 1507
  • 1508
  • 1509
  • 1510
  • 1511
  • 1512
  • 1513
  • 1514
  • 1515
  • 1516
  • 1517
  • 1518
  • 1519
  • 1520
  • 1521
  • 1522
  • 1523
  • 1524
  • 1525
  • 1526
  • 1527
  • 1528
  • 1529
  • 1530
  • 1531
  • 1532
  • 1533
  • 1534
  • 1535
  • 1536
  • 1537
  • 1538
  • 1539
  • 1540
  • 1541
  • 1542
  • 1543
  • 1544
  • 1545
  • 1546
  • 1547
  • 1548
  • 1549
  • 1550
  • 1551
  • 1552
  • 1553
  • 1554
  • 1555
  • 1556
  • 1557
  • 1558
  • 1559
  • 1560
  • 1561
  • 1562
  • 1563
  • 1564
  • 1565
  • 1566
  • 1567
  • 1568
  • 1569
  • 1570
  • 1571
  • 1572
  • 1573
  • 1574
  • 1575
  • 1576
  • 1577
  • 1578
  • 1579
  • 1580
  • 1581
  • 1582
  • 1583
  • 1584
  • 1585
  • 1586
  • 1587
  • 1588
  • 1589
  • 1590
  • 1591
  • 1592
  • 1593
  • 1594
  • 1595
  • 1596
  • 1597
  • 1598
  • 1599
  • 1600
  • 1601
  • 1602
  • 1603
  • 1604
  • 1605
  • 1606
  • 1607
  • 1608
  • 1609
  • 1610
  • 1611
  • 1612
  • 1613
  • 1614
  • 1615
  • 1616
  • 1617
  • 1618
  • 1619
  • 1620
  • 1621
  • 1622
  • 1623
  • 1624
  • 1625
  • 1626
  • 1627
  • 1628
  • 1629
  • 1630
  • 1631
  • 1632
  • 1633
  • 1634
  • 1635
  • 1636
  • 1637
  • 1638
  • 1639
  • 1640
  • 1641
  • 1642
  • 1643
  • 1644
  • 1645
  • 1646
  • 1647
  • 1648
  • 1649
  • 1650
  • 1651
  • 1652
  • 1653
  • 1654
  • 1655
  • 1656
  • 1657
  • 1658
  • 1659
  • 1660
  • 1661
  • 1662
  • 1663
  • 1664
  • 1665
  • 1666
  • 1667
  • 1668
  • 1669
  • 1670
  • 1671
  • 1672
  • 1673
  • 1674
  • 1675
  • 1676
  • 1677
  • 1678
  • 1679
  • 1680
  • 1681
  • 1682
  • 1683
  • 1684
  • 1685
  • 1686
  • 1687
  • 1688
  • 1689
  • 1690
  • 1691
  • 1692
  • 1693
  • 1694
  • 1695
  • 1696
  • 1697
  • 1698
  • 1699
  • 1700
  • 1701
  • 1702
  • 1703
  • 1704
  • 1705
  • 1706
  • 1707
  • 1708
  • 1709
  • 1710
  • 1711
  • 1712
  • 1713
  • 1714
  • 1715
  • 1716
  • 1717
  • 1718
  • 1719
  • 1720
  • 1721
  • 1722
  • 1723
  • 1724
  • 1725
  • 1726
  • 1727
  • 1728
  • 1729
  • 1730
  • 1731
  • 1732
  • 1733
  • 1734
  • 1735
  • 1736
  • 1737
  • 1738
  • 1739
  • 1740
  • 1741
  • 1742
  • 1743
  • 1744
  • 1745
  • 1746
  • 1747
  • 1748
  • 1749
  • 1750
  • 1751
  • 1752
  • 1753
  • 1754
  • 1755
  • 1756
  • 1757
  • 1758
  • 1759
  • 1760
  • 1761
  • 1762
  • 1763
  • 1764
  • 1765
  • 1766
  • 1767
  • 1768
  • 1769
  • 1770
  • 1771
  • 1772
  • 1773
  • 1774
  • 1775
  • 1776
  • 1777
  • 1778
  • 1779
  • 1780
  • 1781
  • 1782
  • 1783
  • 1784
  • 1785
  • 1786
  • 1787
  • 1788
  • 1789
  • 1790
  • 1791
  • 1792
  • 1793
  • 1794
  • 1795
  • 1796
  • 1797
  • 1798
  • 1799
  • 1800
  • 1801
  • 1802
  • 1803
  • 1804
  • 1805
  • 1806
  • 1807
  • 1808
  • 1809
  • 1810
  • 1811
  • 1812
  • 1813
  • 1814
  • 1815
  • 1816
  • 1817
  • 1818
  • 1819
  • 1820
  • 1821
  • 1822
  • 1823
  • 1824
  • 1825
  • 1826
  • 1827
  • 1828
  • 1829
  • 1830
  • 1831
  • 1832
  • 1833
  • 1834
  • 1835
  • 1836
  • 1837
  • 1838
  • 1839
  • 1840
  • 1841
  • 1842
  • 1843
  • 1844
  • 1845
  • 1846
  • 1847
  • 1848
  • 1849
  • 1850
  • 1851
  • 1852
  • 1853
  • 1854
  • 1855
  • 1856
  • 1857
  • 1858
  • 1859
  • 1860
  • 1861
  • 1862
  • 1863
  • 1864
  • 1865
  • 1866
  • 1867
  • 1868
  • 1869
  • 1870
  • 1871
  • 1872
  • 1873
  • 1874
  • 1875
  • 1876
  • 1877
  • 1878
  • 1879
  • 1880
  • 1881
  • 1882
  • 1883
  • 1884
  • 1885
  • 1886
  • 1887
  • 1888
  • 1889
  • 1890
  • 1891
  • 1892
  • 1893
  • 1894
  • 1895
  • 1896
  • 1897
  • 1898
  • 1899
  • 1900
  • 1901
  • 1902
  • 1903
  • 1904
  • 1905
  • 1906
  • 1907
  • 1908
  • 1909
  • 1910
  • 1911
  • 1912
  • 1913
  • 1914
  • 1915
  • 1916
  • 1917
  • 1918
  • 1919
  • 1920
  • 1921
  • 1922
  • 1923
  • 1924
  • 1925
  • 1926
  • 1927
  • 1928
  • 1929
  • 1930
  • 1931
  • 1932
  • 1933
  • 1934
  • 1935
  • 1936
  • 1937
  • 1938
  • 1939
  • 1940
  • 1941
  • 1942
  • 1943
  • 1944
  • 1945
  • 1946
  • 1947
  • 1948
  • 1949
  • 1950
  • 1951
  • 1952
  • 1953
  • 1954
  • 1955
  • 1956
  • 1957
  • 1958
  • 1959
  • 1960
  • 1961
  • 1962
  • 1963
  • 1964
  • 1965
  • 1966
  • 1967
  • 1968
  • 1969
  • 1970
  • 1971
  • 1972
  • 1973
  • 1974
  • 1975
  • 1976
  • 1977
  • 1978
  • 1979
  • 1980
  • 1981
  • 1982
  • 1983
  • 1984
  • 1985
  • 1986
  • 1987
  • 1988
  • 1989
  • 1990
  • 1991
  • 1992
  • 1993
  • 1994
  • 1995
  • 1996
  • 1997
  • 1998
  • 1999
  • 2000
  • 2001
  • 2002
  • 2003
  • 2004
  • 2005
  • 2006
  • 2007
  • 2008
  • 2009
  • 2010
  • 2011
  • 2012
  • 2013
  • 2014
  • 2015
  • 2016
  • 2017
  • 2018
  • 2019
  • 2020
  • 2021
  • 2022
  • 2023
  • 2024
  • 2025
  • 2026
  • 2027
  • 2028
  • 2029
  • 2030
  • 2031
  • 2032
  • 2033
  • 2034
  • 2035
  • 2036
  • 2037
  • 2038
  • 2039
  • 2040
  • 2041
  • 2042
  • 2043
  • 2044
  • 2045
  • 2046
  • 2047
  • 2048
  • 2049
  • 2050
  • 2051
  • 2052
  • 2053
  • 2054
  • 2055
  • 2056
  • 2057
  • 2058
  • 2059
  • 2060
  • 2061
  • 2062
  • 2063
  • 2064
  • 2065
  • 2066
  • 2067
  • 2068
  • 2069
  • 2070
  • 2071
  • 2072
  • 2073
  • 2074
  • 2075
  • 2076
  • 2077
  • 2078
  • 2079
  • 2080
  • 2081
  • 2082
  • 2083
  • 2084
  • 2085
  • 2086
  • 2087
  • 2088
  • 2089
  • 2090
  • 2091
  • 2092
  • 2093
  • 2094
  • 2095
  • 2096
  • 2097
  • 2098
  • 2099
  • 2100
  • 2101
  • 2102
  • 2103
  • 2104
  • 2105
  • 2106
  • 2107
  • 2108
  • 2109
  • 2110
  • 2111
  • 2112
  • 2113
  • 2114
  • 2115
  • 2116
  • 2117
  • 2118
  • 2119
  • 2120
  • 2121
  • 2122
  • 2123
  • 2124
  • 2125
  • 2126
  • 2127
  • 2128
  • 2129
  • 2130
  • 2131
  • 2132
  • 2133
  • 2134
  • 2135
  • 2136
  • 2137
  • 2138
  • 2139
  • 2140
  • 2141
  • 2142
  • 2143
  • 2144
  • 2145
  • 2146
  • 2147
  • 2148
  • 2149
  • 2150
  • 2151
  • 2152
  • 2153
  • 2154
  • 2155
  • 2156
  • 2157
  • 2158
  • 2159
  • 2160
  • 2161
  • 2162
  • 2163
  • 2164
  • 2165
  • 2166
  • 2167
  • 2168
  • 2169
  • 2170
  • 2171
  • 2172
  • 2173
  • 2174
  • 2175
  • 2176
  • 2177
  • 2178
  • 2179
  • 2180
  • 2181
  • 2182
  • 2183
  • 2184
  • 2185
  • 2186
  • 2187
  • 2188
  • 2189
  • 2190
  • 2191
  • 2192
  • 2193
  • 2194
  • 2195
  • 2196
  • 2197
  • 2198
  • 2199
  • 2200
  • 2201
  • 2202
  • 2203
  • 2204
  • 2205
  • 2206
  • 2207
  • 2208
  • 2209
  • 2210
  • 2211
  • 2212
  • 2213
  • 2214
  • 2215
  • 2216
  • 2217
  • 2218
  • 2219
  • 2220
  • 2221
  • 2222
  • 2223
  • 2224
  • 2225
  • 2226
  • 2227
  • 2228
  • 2229
  • 2230
  • 2231
  • 2232
  • 2233
  • 2234
  • 2235
  • 2236
  • 2237
  • 2238
  • 2239
  • 2240
  • 2241
  • 2242
  • 2243
  • 2244
  • 2245
  • 2246
  • 2247
  • 2248
  • 2249
  • 2250
  • 2251
  • 2252
  • 2253
  • 2254
  • 2255
  • 2256
  • 2257
  • 2258
  • 2259
  • 2260
  • 2261
  • 2262
  • 2263
  • 2264
  • 2265
  • 2266
  • 2267
  • 2268
  • 2269
  • 2270
  • 2271
  • 2272
  • 2273
  • 2274
  • 2275
  • 2276
  • 2277
  • 2278
  • 2279
  • 2280
  • 2281
  • 2282
  • 2283
  • 2284
  • 2285
  • 2286
  • 2287
  • 2288
  • 2289
  • 2290
  • 2291
  • 2292
  • 2293
  • 2294
  • 2295
  • 2296
  • 2297
  • 2298
  • 2299
  • 2300
  • 2301
  • 2302
  • 2303
  • 2304
  • 2305
  • 2306
  • 2307
  • 2308
  • 2309
  • 2310
  • 2311
  • 2312
  • 2313
  • 2314
  • 2315
  • 2316
  • 2317
  • 2318
  • 2319
  • 2320
  • 2321
  • 2322
  • 2323
  • 2324
  • 2325
  • 2326
  • 2327
  • 2328
  • 2329
  • 2330
  • 2331
  • 2332
  • 2333
  • 2334
  • 2335
  • 2336
  • 2337
  • 2338
  • 2339
  • 2340
  • 2341
  • 2342
  • 2343
  • 2344
  • 2345
  • 2346
  • 2347
  • 2348
  • 2349
  • 2350
  • 2351
  • 2352
  • 2353
  • 2354
  • 2355
  • 2356
  • 2357
  • 2358
  • 2359
  • 2360
  • 2361
  • 2362
  • 2363
  • 2364
  • 2365
  • 2366
  • 2367
  • 2368
  • 2369
  • 2370
  • 2371
  • 2372
  • 2373
  • 2374
  • 2375
  • 2376
  • 2377
  • 2378
  • 2379
  • 2380
  • 2381
  • 2382
  • 2383
  • 2384
  • 2385
  • 2386
  • 2387
  • 2388
  • 2389
  • 2390
  • 2391
  • 2392
  • 2393
  • 2394
  • 2395
  • 2396
  • 2397
  • 2398
  • 2399
  • 2400
  • 2401
  • 2402
  • 2403
  • 2404
  • 2405
  • 2406
  • 2407
  • 2408
  • 2409
  • 2410
  • 2411
  • 2412
  • 2413
  • 2414
  • 2415
  • 2416
  • 2417
  • 2418
  • 2419
  • 2420
  • 2421
  • 2422
  • 2423
  • 2424
  • 2425
  • 2426
  • 2427
  • 2428
  • 2429
  • 2430
  • 2431
  • 2432
  • 2433
  • 2434
  • 2435
  • 2436
  • 2437
  • 2438
  • 2439
  • 2440
  • 2441
  • 2442
  • 2443
  • 2444
  • 2445
  • 2446
  • 2447
  • 2448
  • 2449
  • 2450
  • 2451
  • 2452
  • 2453
  • 2454
  • 2455
  • 2456
  • 2457
  • 2458
  • 2459
  • 2460
  • 2461
  • 2462
  • 2463
  • 2464
  • 2465
  • 2466
  • 2467
  • 2468
  • 2469
  • 2470
  • 2471
  • 2472
  • 2473
  • 2474
  • 2475
  • 2476
  • 2477
  • 2478
  • 2479
  • 2480
  • 2481
  • 2482
  • 2483
  • 2484
  • 2485
  • 2486
  • 2487
  • 2488
  • 2489
  • 2490
  • 2491
  • 2492
  • 2493
  • 2494
  • 2495
  • 2496
  • 2497
  • 2498
  • 2499
  • 2500
  • 2501
  • 2502
  • 2503
  • 2504
  • 2505
  • 2506
  • 2507
  • 2508
  • 2509
  • 2510
  • 2511
  • 2512
  • 2513
  • 2514
  • 2515
  • 2516
  • 2517
  • 2518
  • 2519
  • 2520
  • 2521
  • 2522
  • 2523
  • 2524
  • 2525
  • 2526
  • 2527
  • 2528
  • 2529
  • 2530
  • 2531
  • 2532
  • 2533
  • 2534
  • 2535
  • 2536
  • 2537
  • 2538
  • 2539
  • 2540
  • 2541
  • 2542
  • 2543
  • 2544
  • 2545
  • 2546
  • 2547
  • 2548
  • 2549
  • 2550
  • 2551
  • 2552
  • 2553
  • 2554
  • 2555
  • 2556
  • 2557
  • 2558
  • 2559
  • 2560
  • 2561
  • 2562
  • 2563
  • 2564
  • 2565
  • 2566
  • 2567
  • 2568
  • 2569
  • 2570
  • 2571
  • 2572
  • 2573
  • 2574
  • 2575
  • 2576
  • 2577
  • 2578
  • 2579
  • 2580
  • 2581
  • 2582
  • 2583
  • 2584
  • 2585
  • 2586
  • 2587
  • 2588
  • 2589
  • 2590
  • 2591
  • 2592
  • 2593
  • 2594
  • 2595
  • 2596
  • 2597
  • 2598
  • 2599
  • 2600
  • 2601
  • 2602
  • 2603
  • 2604
  • 2605
  • 2606
  • 2607
  • 2608
  • 2609
  • 2610
  • 2611
  • 2612
  • 2613
  • 2614
  • 2615
  • 2616
  • 2617
  • 2618
  • 2619
  • 2620
  • 2621
  • 2622
  • 2623
  • 2624
  • 2625
  • 2626
  • 2627
  • 2628
  • 2629
  • 2630
  • 2631
  • 2632
  • 2633
  • 2634
  • 2635
  • 2636
  • 2637
  • 2638
  • 2639
  • 2640
  • 2641
  • 2642
  • 2643
  • 2644
  • 2645
  • 2646
  • 2647
  • 2648
  • 2649
  • 2650
  • 2651
  • 2652
  • 2653
  • 2654
  • 2655
  • 2656
  • 2657
  • 2658
  • 2659
  • 2660
  • 2661
  • 2662
  • 2663
  • 2664
  • 2665
  • 2666
  • 2667
  • 2668
  • 2669
  • 2670
  • 2671
  • 2672
  • 2673
  • 2674
  • 2675
  • 2676
  • 2677
  • 2678
  • 2679
  • 2680
  • 2681
  • 2682
  • 2683
  • 2684
  • 2685
  • 2686
  • 2687
  • 2688
  • 2689
  • 2690
  • 2691
  • 2692
  • 2693
  • 2694
  • 2695
  • 2696
  • 2697
  • 2698
  • 2699
  • 2700
  • 2701
  • 2702
  • 2703
  • 2704
  • 2705
  • 2706
  • 2707
  • 2708
  • 2709
  • 2710
  • 2711
  • 2712
  • 2713
  • 2714
  • 2715
  • 2716
  • 2717
  • 2718
  • 2719
  • 2720
  • 2721
  • 2722
  • 2723
  • 2724
  • 2725
  • 2726
  • 2727
  • 2728
  • 2729
  • 2730
  • 2731
  • 2732
  • 2733
  • 2734
  • 2735
  • 2736
  • 2737
  • 2738
  • 2739
  • 2740
  • 2741
  • 2742
  • 2743
  • 2744
  • 2745
  • 2746
  • 2747
  • 2748
  • 2749
  • 2750
  • 2751
  • 2752
  • 2753
  • 2754
  • 2755
  • 2756
  • 2757
  • 2758
  • 2759
  • 2760
  • 2761
  • 2762
  • 2763
  • 2764
  • 2765
  • 2766
  • 2767
  • 2768
  • 2769
  • 2770
  • 2771
  • 2772
  • 2773
  • 2774
  • 2775
  • 2776
  • 2777
  • 2778
  • 2779
  • 2780
  • 2781
  • 2782
  • 2783
  • 2784
  • 2785
  • 2786
  • 2787
  • 2788
  • 2789
  • 2790
  • 2791
  • 2792
  • 2793
  • 2794
  • 2795
  • 2796
  • 2797
  • 2798
  • 2799
  • 2800
  • 2801
  • 2802
  • 2803
  • 2804
  • 2805
  • 2806
  • 2807
  • 2808
  • 2809
  • 2810
  • 2811
  • 2812
  • 2813
  • 2814
  • 2815
  • 2816
  • 2817
  • 2818
  • 2819
  • 2820
  • 2821
  • 2822
  • 2823
  • 2824
  • 2825
  • 2826
  • 2827
  • 2828
  • 2829
  • 2830
  • 2831
  • 2832
  • 2833
  • 2834
  • 2835
  • 2836
  • 2837
  • 2838
  • 2839
  • 2840
  • 2841
  • 2842
  • 2843
  • 2844
  • 2845
  • 2846
  • 2847
  • 2848
  • 2849
  • 2850
  • 2851
  • 2852
  • 2853
  • 2854
  • 2855
  • 2856
  • 2857
  • 2858
  • 2859
  • 2860
  • 2861
  • 2862
  • 2863
  • 2864
  • 2865
  • 2866
  • 2867
  • 2868
  • 2869
  • 2870
  • 2871
  • 2872
  • 2873
  • 2874
  • 2875
  • 2876
  • 2877
  • 2878
  • 2879
  • 2880
  • 2881
  • 2882
  • 2883
  • 2884
  • 2885
  • 2886
  • 2887
  • 2888
  • 2889
  • 2890
  • 2891
  • 2892
  • 2893
  • 2894
  • 2895
  • 2896
  • 2897
  • 2898
  • 2899
  • 2900
  • 2901
  • 2902
  • 2903
  • 2904
  • 2905
  • 2906
  • 2907
  • 2908
  • 2909
  • 2910
  • 2911
  • 2912
  • 2913
  • 2914
  • 2915
  • 2916
  • 2917
  • 2918
  • 2919
  • 2920
  • 2921
  • 2922
  • 2923
  • 2924
  • 2925
  • 2926
  • 2927
  • 2928
  • 2929
  • 2930
  • 2931
  • 2932
  • 2933
  • 2934
  • 2935
  • 2936
  • 2937
  • 2938
  • 2939
  • 2940
  • 2941
  • 2942
  • 2943
  • 2944
  • 2945
  • 2946
  • 2947
  • 2948
  • 2949
  • 2950
  • 2951
  • 2952
  • 2953
  • 2954
  • 2955
  • 2956
  • 2957
  • 2958
  • 2959
  • 2960
  • 2961
  • 2962
  • 2963
  • 2964
  • 2965
  • 2966
  • 2967
  • 2968
  • 2969
  • 2970
  • 2971
  • 2972
  • 2973
  • 2974
  • 2975
  • 2976
  • 2977
  • 2978
  • 2979
  • 2980
  • 2981
  • 2982
  • 2983
  • 2984
  • 2985
  • 2986
  • 2987
  • 2988
  • 2989
  • 2990
  • 2991
  • 2992
  • 2993
  • 2994
  • 2995
  • 2996
  • 2997
  • 2998
  • 2999
  • 3000
  • 3001
  • 3002
  • 3003
  • 3004
  • 3005
  • 3006
  • 3007
  • 3008
  • 3009
  • 3010
  • 3011
  • 3012
  • 3013
  • 3014
  • 3015
  • 3016
  • 3017
  • 3018
  • 3019
  • 3020
  • 3021
  • 3022
  • 3023
  • 3024
  • 3025
  • 3026
  • 3027
  • 3028
  • 3029
  • 3030
  • 3031
  • 3032
  • 3033
  • 3034
  • 3035
  • 3036
  • 3037
  • 3038
  • 3039
  • 3040
  • 3041
  • 3042
  • 3043
  • 3044
  • 3045
  • 3046
  • 3047
  • 3048
  • 3049
  • 3050
  • 3051
  • 3052
  • 3053
  • 3054
  • 3055
  • 3056
  • 3057
  • 3058
  • 3059
  • 3060
  • 3061
  • 3062
  • 3063
  • 3064
  • 3065
  • 3066
  • 3067
  • 3068
  • 3069
  • 3070
  • 3071
  • 3072
  • 3073
  • 3074
  • 3075
  • 3076
  • 3077
  • 3078
  • 3079
  • 3080
  • 3081
  • 3082
  • 3083
  • 3084
  • 3085
  • 3086
  • 3087
  • 3088
  • 3089
  • 3090
  • 3091
  • 3092
  • 3093
  • 3094
  • 3095
  • 3096
  • 3097
  • 3098
  • 3099
  • 3100
  • 3101
  • 3102
  • 3103
  • 3104
  • 3105
  • 3106
  • 3107
  • 3108
  • 3109
  • 3110
  • 3111
  • 3112
  • 3113
  • 3114
  • 3115
  • 3116
  • 3117
  • 3118
  • 3119
  • 3120
  • 3121
  • 3122
  • 3123
  • 3124
  • 3125
  • 3126
  • 3127
  • 3128
  • 3129
  • 3130
  • 3131
  • 3132
  • 3133
  • 3134
  • 3135
  • 3136
  • 3137
  • 3138
  • 3139
  • 3140
  • 3141
  • 3142
  • 3143
  • 3144
  • 3145
  • 3146
  • 3147
  • 3148
  • 3149
  • 3150
  • 3151
  • 3152
  • 3153
  • 3154
  • 3155
  • 3156
  • 3157
  • 3158
  • 3159
  • 3160
  • 3161
  • 3162
  • 3163
  • 3164
  • 3165
  • 3166
  • 3167
  • 3168
  • 3169
  • 3170
  • 3171
  • 3172
  • 3173
  • 3174
  • 3175
  • 3176
  • 3177
  • 3178
  • 3179
  • 3180
  • 3181
  • 3182
  • 3183
  • 3184
  • 3185
  • 3186
  • 3187
  • 3188
  • 3189
  • 3190
  • 3191
  • 3192
  • 3193
  • 3194
  • 3195
  • 3196
  • 3197
  • 3198
  • 3199
  • 3200
  • 3201
  • 3202
  • 3203
  • 3204
  • 3205
  • 3206
  • 3207
  • 3208
  • 3209
  • 3210
  • 3211
  • 3212
  • 3213
  • 3214
  • 3215
  • 3216
  • 3217
  • 3218
  • 3219
  • 3220
  • 3221
  • 3222
  • 3223
  • 3224
  • 3225
  • 3226
  • 3227
  • 3228
  • 3229
  • 3230
  • 3231
  • 3232
  • 3233
  • 3234
  • 3235
  • 3236
  • 3237
  • 3238
  • 3239
  • 3240
  • 3241
  • 3242
  • 3243
  • 3244
  • 3245
  • 3246
  • 3247
  • 3248
  • 3249
  • 3250
  • 3251
  • 3252
  • 3253
  • 3254
  • 3255
  • 3256
  • 3257
  • 3258
  • 3259
  • 3260
  • 3261
  • 3262
  • 3263
  • 3264
  • 3265
  • 3266
  • 3267
  • 3268
  • 3269
  • 3270
  • 3271
  • 3272
  • 3273
  • 3274
  • 3275
  • 3276
  • 3277
  • 3278
  • 3279
  • 3280
  • 3281
  • 3282
  • 3283
  • 3284
  • 3285
  • 3286
  • 3287
  • 3288
  • 3289
  • 3290
  • 3291
  • 3292
  • 3293
  • 3294
  • 3295
  • 3296
  • 3297
  • 3298
  • 3299
  • 3300
  • 3301
  • 3302
  • 3303
  • 3304
  • 3305
  • 3306
  • 3307
  • 3308
  • 3309
  • 3310
  • 3311
  • 3312
  • 3313
  • 3314
  • 3315
  • 3316
  • 3317
  • 3318
  • 3319
  • 3320
  • 3321
  • 3322
  • 3323
  • 3324
  • 3325
  • 3326
  • 3327
  • 3328
  • 3329
  • 3330
  • 3331
  • 3332
  • 3333
  • 3334
  • 3335
  • 3336
  • 3337
  • 3338
  • 3339
  • 3340
  • 3341
  • 3342
  • 3343
  • 3344
  • 3345
  • 3346
  • 3347
  • 3348
  • 3349
  • 3350
  • 3351
  • 3352
  • 3353
  • 3354
  • 3355
  • 3356
  • 3357
  • 3358
  • 3359
  • 3360
  • 3361
  • 3362
  • 3363
  • 3364
  • 3365
  • 3366
  • 3367
  • 3368
  • 3369
  • 3370
  • 3371
  • 3372
  • 3373
  • 3374
  • 3375
  • 3376
  • 3377
  • 3378
  • 3379
  • 3380
  • 3381
  • 3382
  • 3383
  • 3384
  • 3385
  • 3386
  • 3387
  • 3388
  • 3389
  • 3390
  • 3391
  • 3392
  • 3393
  • 3394
  • 3395
  • 3396
  • 3397
  • 3398
  • 3399
  • 3400
  • 3401
  • 3402
  • 3403
  • 3404
  • 3405
  • 3406
  • 3407
  • 3408
  • 3409
  • 3410
  • 3411
  • 3412
  • 3413
  • 3414
  • 3415
  • 3416
  • 3417
  • 3418
  • 3419
  • 3420
  • 3421
  • 3422
  • 3423
  • 3424
  • 3425
  • 3426
  • 3427
  • 3428
  • 3429
  • 3430
  • 3431
  • 3432
  • 3433
  • 3434
  • 3435
  • 3436
  • 3437
  • 3438
  • 3439
  • 3440
  • 3441
  • 3442
  • 3443
  • 3444
  • 3445
  • 3446
  • 3447
  • 3448
  • 3449
  • 3450
  • 3451
  • 3452
  • 3453
  • 3454
  • 3455
  • 3456
  • 3457
  • 3458
  • 3459
  • 3460
  • 3461
  • 3462
  • 3463
  • 3464
  • 3465
  • 3466
  • 3467
  • 3468
  • 3469
  • 3470
  • 3471
  • 3472
  • 3473
  • 3474
  • 3475
  • 3476
  • 3477
  • 3478
  • 3479
  • 3480
  • 3481
  • 3482
  • 3483
  • 3484
  • 3485
  • 3486
  • 3487
  • 3488
  • 3489
  • 3490
  • 3491
  • 3492
  • 3493
  • 3494
  • 3495
  • 3496
  • 3497
  • 3498
  • 3499
  • 3500
  • 3501
  • 3502
  • 3503
  • 3504
  • 3505
  • 3506
  • 3507
  • 3508
  • 3509
  • 3510
  • 3511
  • 3512
  • 3513
  • 3514
  • 3515
  • 3516
  • 3517
  • 3518
  • 3519
  • 3520
  • 3521
  • 3522
  • 3523
  • 3524
  • 3525
  • 3526
  • 3527
  • 3528
  • 3529
  • 3530
  • 3531
  • 3532
  • 3533
  • 3534
  • 3535
  • 3536
  • 3537
  • 3538
  • 3539
  • 3540
  • 3541
  • 3542
  • 3543
  • 3544
  • 3545
  • 3546
  • 3547
  • 3548
  • 3549
  • 3550
  • 3551
  • 3552
  • 3553
  • 3554
  • 3555
  • 3556
  • 3557
  • 3558
  • 3559
  • 3560
  • 3561
  • 3562
  • 3563
  • 3564
  • 3565
  • 3566
  • 3567
  • 3568
  • 3569
  • 3570
  • 3571
  • 3572
  • 3573
  • 3574
  • 3575
  • 3576
  • 3577
  • 3578
  • 3579
  • 3580
  • 3581
  • 3582
  • 3583
  • 3584
  • 3585
  • 3586
  • 3587
  • 3588
  • 3589
  • 3590
  • 3591
  • 3592
  • 3593
  • 3594
  • 3595
  • 3596
  • 3597
  • 3598
  • 3599
  • 3600
  • 3601
  • 3602
  • 3603
  • 3604
  • 3605
  • 3606
  • 3607
  • 3608
  • 3609
  • 3610
  • 3611
  • 3612
  • 3613
  • 3614
  • 3615
  • 3616
  • 3617
  • 3618
  • 3619
  • 3620
  • 3621
  • 3622
  • 3623
  • 3624
  • 3625
  • 3626
  • 3627
  • 3628
  • 3629
  • 3630
  • 3631
  • 3632
  • 3633
  • 3634
  • 3635
  • 3636
  • 3637
  • 3638
  • 3639
  • 3640
  • 3641
  • 3642
  • 3643
  • 3644
  • 3645
  • 3646
  • 3647
  • 3648
  • 3649
  • 3650
  • 3651
  • 3652
  • 3653
  • 3654
  • 3655
  • 3656
  • 3657
  • 3658
  • 3659
  • 3660
  • 3661
  • 3662
  • 3663
  • 3664
  • 3665
  • 3666
  • 3667
  • 3668
  • 3669
  • 3670
  • 3671
  • 3672
  • 3673
  • 3674
  • 3675
  • 3676
  • 3677
  • 3678
  • 3679
  • 3680
  • 3681
  • 3682
  • 3683
  • 3684
  • 3685
  • 3686
  • 3687
  • 3688
  • 3689
  • 3690
  • 3691
  • 3692
  • 3693
  • 3694
  • 3695
  • 3696
  • 3697
  • 3698
  • 3699
  • 3700
  • 3701
  • 3702
  • 3703
  • 3704
  • 3705
  • 3706
  • 3707
  • 3708
  • 3709
  • 3710
  • 3711
  • 3712
  • 3713
  • 3714
  • 3715
  • 3716
  • 3717
  • 3718
  • 3719
  • 3720
  • 3721
  • 3722
  • 3723
  • 3724
  • 3725
  • 3726
  • 3727
  • 3728
  • 3729
  • 3730
  • 3731
  • 3732
  • 3733
  • 3734
  • 3735
  • 3736
  • 3737
  • 3738
  • 3739
  • 3740
  • 3741
  • 3742
  • 3743
  • 3744
  • 3745
  • 3746
  • 3747
  • 3748
  • 3749
  • 3750
  • 3751
  • 3752
  • 3753
  • 3754
  • 3755
  • 3756
  • 3757
  • 3758
  • 3759
  • 3760
  • 3761
  • 3762
  • 3763
  • 3764
  • 3765
  • 3766
  • 3767
  • 3768
  • 3769
  • 3770
  • 3771
  • 3772
  • 3773
  • 3774
  • 3775
  • 3776
  • 3777
  • 3778
  • 3779
  • 3780
  • 3781
  • 3782
  • 3783
  • 3784
  • 3785
  • 3786
  • 3787
  • 3788
  • 3789
  • 3790
  • 3791
  • 3792
  • 3793
  • 3794
  • 3795
  • 3796
  • 3797
  • 3798
  • 3799
  • 3800
  • 3801
  • 3802
  • 3803
  • 3804
  • 3805
  • 3806
  • 3807
  • 3808
  • 3809
  • 3810
  • 3811
  • 3812
  • 3813
  • 3814
  • 3815
  • 3816
  • 3817
  • 3818
  • 3819
  • 3820
  • 3821
  • 3822
  • 3823
  • 3824
  • 3825
  • 3826
  • 3827
  • 3828
  • 3829
  • 3830
  • 3831
  • 3832
  • 3833
  • 3834
  • 3835
  • 3836
  • 3837
  • 3838
  • 3839
  • 3840
  • 3841
  • 3842
  • 3843
  • 3844
  • 3845
  • 3846
  • 3847
  • 3848
  • 3849
  • 3850
  • 3851
  • 3852
  • 3853
  • 3854
  • 3855
  • 3856
  • 3857
  • 3858
  • 3859
  • 3860
  • 3861
  • 3862
  • 3863
  • 3864
  • 3865
  • 3866
  • 3867
  • 3868
  • 3869
  • 3870
  • 3871
  • 3872
  • 3873
  • 3874
  • 3875
  • 3876
  • 3877
  • 3878
  • 3879
  • 3880
  • 3881
  • 3882
  • 3883
  • 3884
  • 3885
  • 3886
  • 3887
  • 3888
  • 3889
  • 3890
  • 3891
  • 3892
  • 3893
  • 3894
  • 3895
  • 3896
  • 3897
  • 3898
  • 3899
  • 3900
  • 3901
  • 3902
  • 3903
  • 3904
  • 3905
  • 3906
  • 3907
  • 3908
  • 3909
  • 3910
  • 3911
  • 3912
  • 3913
  • 3914
  • 3915
  • 3916
  • 3917
  • 3918
  • 3919
  • 3920
  • 3921
  • 3922
  • 3923
  • 3924
  • 3925
  • 3926
  • 3927
  • 3928
  • 3929
  • 3930
  • 3931
  • 3932
  • 3933
  • 3934
  • 3935
  • 3936
  • 3937
  • 3938
  • 3939
  • 3940
  • 3941
  • 3942
  • 3943
  • 3944
  • 3945
  • 3946
  • 3947
  • 3948
  • 3949
  • 3950
  • 3951
  • 3952
  • 3953
  • 3954
  • 3955
  • 3956
  • 3957
  • 3958
  • 3959
  • 3960
  • 3961
  • 3962
  • 3963
  • 3964
  • 3965
  • 3966
  • 3967
  • 3968
  • 3969
  • 3970
  • 3971
  • 3972
  • 3973
  • 3974
  • 3975
  • 3976
  • 3977
  • 3978
  • 3979
  • 3980
  • 3981
  • 3982
  • 3983
  • 3984
  • 3985
  • 3986
  • 3987
  • 3988
  • 3989
  • 3990
  • 3991
  • 3992
  • 3993
  • 3994
  • 3995
  • 3996
  • 3997
  • 3998
  • 3999
  • 4000
  • 4001
  • 4002
  • 4003
  • 4004
  • 4005
  • 4006
  • 4007
  • 4008
  • 4009
  • 4010
  • 4011
  • 4012
  • 4013
  • 4014
  • 4015
  • 4016
  • 4017
  • 4018
  • 4019
  • 4020
  • 4021
  • 4022
  • 4023
  • 4024
  • 4025
  • 4026
  • 4027
  • 4028
  • 4029
  • 4030
  • 4031
  • 4032
  • 4033
  • 4034
  • 4035
  • 4036
  • 4037
  • 4038
  • 4039
  • 4040
  • 4041
  • 4042
  • 4043
  • 4044
  • 4045
  • 4046
  • 4047
  • 4048
  • 4049
  • 4050
  • 4051
  • 4052
  • 4053
  • 4054
  • 4055
  • 4056
  • 4057
  • 4058
  • 4059
  • 4060
  • 4061
  • 4062
  • 4063
  • 4064
  • 4065
  • 4066
  • 4067
  • 4068
  • 4069
  • 4070
  • 4071
  • 4072
  • 4073
  • 4074
  • 4075
  • 4076
  • 4077
  • 4078
  • 4079
  • 4080
  • 4081
  • 4082
  • 4083
  • 4084
  • 4085
  • 4086
  • 4087
  • 4088
  • 4089
  • 4090
  • 4091
  • 4092
  • 4093
  • 4094
  • 4095
  • 4096
  • 4097
  • 4098
  • 4099
  • 4100
  • 4101
  • 4102
  • 4103
  • 4104
  • 4105
  • 4106
  • 4107
  • 4108
  • 4109
  • 4110
  • 4111
  • 4112
  • 4113
  • 4114
  • 4115
  • 4116
  • 4117
  • 4118
  • 4119
  • 4120
  • 4121
  • 4122
  • 4123
  • 4124
  • 4125
  • 4126
  • 4127
  • 4128
  • 4129
  • 4130
  • 4131
  • 4132
  • 4133
  • 4134
  • 4135
  • 4136
  • 4137
  • 4138
  • 4139
  • 4140
  • 4141
  • 4142
  • 4143
  • 4144
  • 4145
  • 4146
  • 4147
  • 4148
  • 4149
  • 4150
  • 4151
  • 4152
  • 4153
  • 4154
  • 4155
  • 4156
  • 4157
  • 4158
  • 4159
  • 4160
  • 4161
  • 4162
  • 4163
  • 4164
  • 4165
  • 4166
  • 4167
  • 4168
  • 4169
  • 4170
  • 4171
  • 4172
  • 4173
  • 4174
  • 4175
  • 4176
  • 4177
  • 4178
  • 4179
  • 4180
  • 4181
  • 4182
  • 4183
  • 4184
  • 4185
  • 4186
  • 4187
  • 4188
  • 4189
  • 4190
  • 4191
  • 4192
  • 4193
  • 4194
  • 4195
  • 4196
  • 4197
  • 4198
  • 4199
  • 4200
  • 4201
  • 4202
  • 4203
  • 4204
  • 4205
  • 4206
  • 4207
  • 4208
  • 4209
  • 4210
  • 4211
  • 4212
  • 4213
  • 4214
  • 4215
  • 4216
  • 4217
  • 4218
  • 4219
  • 4220
  • 4221
  • 4222
  • 4223
  • 4224
  • 4225
  • 4226
  • 4227
  • 4228
  • 4229
  • 4230
  • 4231
  • 4232
  • 4233
  • 4234
  • 4235
  • 4236
  • 4237
  • 4238
  • 4239
  • 4240
  • 4241
  • 4242
  • 4243
  • 4244
  • 4245
  • 4246
  • 4247
  • 4248
  • 4249
  • 4250
  • 4251
  • 4252
  • 4253
  • 4254
  • 4255
  • 4256
  • 4257
  • 4258
  • 4259
  • 4260
  • 4261
  • 4262
  • 4263
  • 4264
  • 4265
  • 4266
  • 4267
  • 4268
  • 4269
  • 4270
  • 4271
  • 4272
  • 4273
  • 4274
  • 4275
  • 4276
  • 4277
  • 4278
  • 4279
  • 4280
  • 4281
  • 4282
  • 4283
  • 4284
  • 4285
  • 4286
  • 4287
  • 4288
  • 4289
  • 4290
  • 4291
  • 4292
  • 4293
  • 4294
  • 4295
  • 4296
  • 4297
  • 4298
  • 4299
  • 4300
  • 4301
  • 4302
  • 4303
  • 4304
  • 4305
  • 4306
  • 4307
  • 4308
  • 4309
  • 4310
  • 4311
  • 4312
  • 4313
  • 4314
  • 4315
  • 4316
  • 4317
  • 4318
  • 4319
  • 4320
  • 4321
  • 4322
  • 4323
  • 4324
  • 4325
  • 4326
  • 4327
  • 4328
  • 4329
  • 4330
  • 4331
  • 4332
  • 4333
  • 4334
  • 4335
  • 4336
  • 4337
  • 4338
  • 4339
  • 4340
  • 4341
  • 4342
  • 4343
  • 4344
  • 4345
  • 4346
  • 4347
  • 4348
  • 4349
  • 4350
  • 4351
  • 4352
  • 4353
  • 4354
  • 4355
  • 4356
  • 4357
  • 4358
  • 4359
  • 4360
  • 4361
  • 4362
  • 4363
  • 4364
  • 4365
  • 4366
  • 4367
  • 4368
  • 4369
  • 4370
  • 4371
  • 4372
  • 4373
  • 4374
  • 4375
  • 4376
  • 4377
  • 4378
  • 4379
  • 4380
  • 4381
  • 4382
  • 4383
  • 4384
  • 4385
  • 4386
  • 4387
  • 4388
  • 4389
  • 4390
  • 4391
  • 4392
  • 4393
  • 4394
  • 4395
  • 4396
  • 4397
  • 4398
  • 4399
  • 4400
  • 4401
  • 4402
  • 4403
  • 4404
  • 4405
  • 4406
  • 4407
  • 4408
  • 4409
  • 4410
  • 4411
  • 4412
  • 4413
  • 4414
  • 4415
  • 4416
  • 4417
  • 4418
  • 4419
  • 4420
  • 4421
  • 4422
  • 4423
  • 4424
  • 4425
  • 4426
  • 4427
  • 4428
  • 4429
  • 4430
  • 4431
  • 4432
  • 4433
  • 4434
  • 4435
  • 4436
  • 4437
  • 4438
  • 4439
  • 4440
  • 4441
  • 4442
  • 4443
  • 4444
  • 4445
  • 4446
  • 4447
  • 4448
  • 4449
  • 4450
  • 4451
  • 4452
  • 4453
  • 4454
  • 4455
  • 4456
  • 4457
  • 4458
  • 4459
  • 4460
  • 4461
  • 4462
  • 4463
  • 4464
  • 4465
  • 4466
  • 4467
  • 4468
  • 4469
  • 4470
  • 4471
  • 4472
  • 4473
  • 4474
  • 4475
  • 4476
  • 4477
  • 4478
  • 4479
  • 4480
  • 4481
  • 4482
  • 4483
  • 4484
  • 4485
  • 4486
  • 4487
  • 4488
  • 4489
  • 4490
  • 4491
  • 4492
  • 4493
  • 4494
  • 4495
  • 4496
  • 4497
  • 4498
  • 4499
  • 4500
  • 4501
  • 4502
  • 4503
  • 4504
  • 4505
  • 4506
  • 4507
  • 4508
  • 4509
  • 4510
  • 4511
  • 4512
  • 4513
  • 4514
  • 4515
  • 4516
  • 4517
  • 4518
  • 4519
  • 4520
  • 4521
  • 4522
  • 4523
  • 4524
  • 4525
  • 4526
  • 4527
  • 4528
  • 4529
  • 4530
  • 4531
  • 4532
  • 4533
  • 4534
  • 4535
  • 4536
  • 4537
  • 4538
  • 4539
  • 4540
  • 4541
  • 4542
  • 4543
  • 4544
  • 4545
  • 4546
  • 4547
  • 4548
  • 4549
  • 4550
  • 4551
  • 4552
  • 4553
  • 4554
  • 4555
  • 4556
  • 4557
  • 4558
  • 4559
  • 4560
  • 4561
  • 4562
  • 4563
  • 4564
  • 4565
  • 4566
  • 4567
  • 4568
  • 4569
  • 4570
  • 4571
  • 4572
  • 4573
  • 4574
  • 4575
  • 4576
  • 4577
  • 4578
  • 4579
  • 4580
  • 4581
  • 4582
  • 4583
  • 4584
  • 4585
  • 4586
  • 4587
  • 4588
  • 4589
  • 4590
  • 4591
  • 4592
  • 4593
  • 4594
  • 4595
  • 4596
  • 4597
  • 4598
  • 4599
  • 4600
  • 4601
  • 4602
  • 4603
  • 4604
  • 4605
  • 4606
  • 4607
  • 4608
  • 4609
  • 4610
  • 4611
  • 4612
  • 4613
  • 4614
  • 4615
  • 4616
  • 4617
  • 4618
  • 4619
  • 4620
  • 4621
  • 4622
  • 4623
  • 4624
  • 4625
  • 4626
  • 4627
  • 4628
  • 4629
  • 4630
  • 4631
  • 4632
  • 4633
  • 4634
  • 4635
  • 4636
  • 4637
  • 4638
  • 4639
  • 4640
  • 4641
  • 4642
  • 4643
  • 4644
  • 4645
  • 4646
  • 4647
  • 4648
  • 4649
  • 4650
  • 4651
  • 4652
  • 4653
  • 4654
  • 4655
  • 4656
  • 4657
  • 4658
  • 4659
  • 4660
  • 4661
  • 4662
  • 4663
  • 4664
  • 4665
  • 4666
  • 4667
  • 4668
  • 4669
  • 4670
  • 4671
  • 4672
  • 4673
  • 4674
  • 4675
  • 4676
  • 4677
  • 4678
  • 4679
  • 4680
  • 4681
  • 4682
  • 4683
  • 4684
  • 4685
  • 4686
  • 4687
  • 4688
  • 4689
  • 4690
  • 4691
  • 4692
  • 4693
  • 4694
  • 4695
  • 4696
  • 4697
  • 4698
  • 4699
  • 4700
  • 4701
  • 4702
  • 4703
  • 4704
  • 4705
  • 4706
  • 4707
  • 4708
  • 4709
  • 4710
  • 4711
  • 4712
  • 4713
  • 4714
  • 4715
  • 4716
  • 4717
  • 4718
  • 4719
  • 4720
  • 4721
  • 4722
  • 4723
  • 4724
  • 4725
  • 4726
  • 4727
  • 4728
  • 4729
  • 4730
  • 4731
  • 4732
  • 4733
  • 4734
  • 4735
  • 4736
  • 4737
  • 4738
  • 4739
  • 4740
  • 4741
  • 4742
  • 4743
  • 4744
  • 4745
  • 4746
  • 4747
  • 4748
  • 4749
  • 4750
  • 4751
  • 4752
  • 4753
  • 4754
  • 4755
  • 4756
  • 4757
  • 4758
  • 4759
  • 4760
  • 4761
  • 4762
  • 4763
  • 4764
  • 4765
  • 4766
  • 4767
  • 4768
  • 4769
  • 4770
  • 4771
  • 4772
  • 4773
  • 4774
  • 4775
  • 4776
  • 4777
  • 4778
  • 4779
  • 4780
  • 4781
  • 4782
  • 4783
  • 4784
  • 4785
  • 4786
  • 4787
  • 4788
  • 4789
  • 4790
  • 4791
  • 4792
  • 4793
  • 4794
  • 4795
  • 4796
  • 4797
  • 4798
  • 4799
  • 4800
  • 4801
  • 4802
  • 4803
  • 4804
  • 4805
  • 4806
  • 4807
  • 4808
  • 4809
  • 4810
  • 4811
  • 4812
  • 4813
  • 4814
  • 4815
  • 4816
  • 4817
  • 4818
  • 4819
  • 4820
  • 4821
  • 4822
  • 4823
  • 4824
  • 4825
  • 4826
  • 4827
  • 4828
  • 4829
  • 4830
  • 4831
  • 4832
  • 4833
  • 4834
  • 4835
  • 4836
  • 4837
  • 4838
  • 4839
  • 4840
  • 4841
  • 4842
  • 4843
  • 4844
  • 4845
  • 4846
  • 4847
  • 4848
  • 4849
  • 4850
  • 4851
  • 4852
  • 4853
  • 4854
  • 4855
  • 4856
  • 4857
  • 4858
  • 4859
  • 4860
  • 4861
  • 4862
  • 4863
  • 4864
  • 4865
  • 4866
  • 4867
  • 4868
  • 4869
  • 4870
  • 4871
  • 4872
  • 4873
  • 4874
  • 4875
  • 4876
  • 4877
  • 4878
  • 4879
  • 4880
  • 4881
  • 4882
  • 4883
  • 4884
  • 4885
  • 4886
  • 4887
  • 4888
  • 4889
  • 4890
  • 4891
  • 4892
  • 4893
  • 4894
  • 4895
  • 4896
  • 4897
  • 4898
  • 4899
  • 4900
  • 4901
  • 4902
  • 4903
  • 4904
  • 4905
  • 4906
  • 4907
  • 4908
  • 4909
  • 4910
  • 4911
  • 4912
  • 4913
  • 4914
  • 4915
  • 4916
  • 4917
  • 4918
  • 4919
  • 4920
  • 4921
  • 4922
  • 4923
  • 4924
  • 4925
  • 4926
  • 4927
  • 4928
  • 4929
  • 4930
  • 4931
  • 4932
  • 4933
  • 4934
  • 4935
  • 4936
  • 4937
  • 4938
  • 4939
  • 4940
  • 4941
  • 4942
  • 4943
  • 4944
  • 4945
  • 4946
  • 4947
  • 4948
  • 4949
  • 4950
  • 4951
  • 4952
  • 4953
  • 4954
  • 4955
  • 4956
  • 4957
  • 4958
  • 4959
  • 4960
  • 4961
  • 4962
  • 4963
  • 4964
  • 4965
  • 4966
  • 4967
  • 4968
  • 4969
  • 4970
  • 4971
  • 4972
  • 4973
  • 4974
  • 4975
  • 4976
  • 4977
  • 4978
  • 4979
  • 4980
  • 4981
  • 4982
  • 4983
  • 4984
  • 4985
  • 4986
  • 4987
  • 4988
  • 4989
  • 4990
  • 4991
  • 4992
  • 4993
  • 4994
  • 4995
  • 4996
  • 4997
  • 4998
  • 4999
  • 5000
  • 5001
  • 5002
  • 5003
  • 5004
  • 5005
  • 5006
  • 5007
  • 5008
  • 5009
  • 5010
  • 5011
  • 5012
  • 5013
  • 5014
  • 5015
  • 5016
  • 5017
  • 5018
  • 5019
  • 5020
  • 5021
  • 5022
  • 5023
  • 5024
  • 5025
  • 5026
  • 5027
  • 5028
  • 5029
  • 5030
  • 5031
  • 5032
  • 5033
  • 5034
  • 5035
  • 5036
  • 5037
  • 5038
  • 5039
  • 5040
  • 5041
  • 5042
  • 5043
  • 5044
  • 5045
  • 5046
  • 5047
  • 5048
  • 5049
  • 5050
  • 5051
  • 5052
  • 5053
  • 5054
  • 5055
  • 5056
  • 5057
  • 5058
  • 5059
  • 5060
  • 5061
  • 5062
  • 5063
  • 5064
  • 5065
  • 5066
  • 5067
  • 5068
  • 5069
  • 5070
  • 5071
  • 5072
  • 5073
  • 5074
  • 5075
  • 5076
  • 5077
  • 5078
  • 5079
  • 5080
  • 5081
  • 5082
  • 5083
  • 5084
  • 5085
  • 5086
  • 5087
  • 5088
  • 5089
  • 5090
  • 5091
  • 5092
  • 5093
  • 5094
  • 5095
  • 5096
  • 5097
  • 5098
  • 5099
  • 5100
  • 5101
  • 5102
  • 5103
  • 5104
  • 5105
  • 5106
  • 5107
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/674466
推荐阅读
相关标签
  

闽ICP备14008679号