<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!--
  Licensed 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. See accompanying LICENSE file.
-->

<configuration>

<!-- file system properties -->

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

  <property>
    <name>dfs.datanode.data.dir</name>
    <value>${HADOOP_DN_DIR}</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.
       Directories that do not exist are ignored.
    </description>
    <final>true</final>
  </property>

  <property>
    <name>dfs.namenode.safemode.threshold-pct</name>
    <value>1.0f</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 start in safe mode.
        Values greater than 1 will make safe mode permanent.
        </description>
  </property>

  <property>
    <name>dfs.datanode.address</name>
    <value>${HADOOP_DN_ADDR}</value>
  </property>

  <property>
    <name>dfs.datanode.http.address</name>
    <value>${HADOOP_DN_HTTP_ADDR}</value>
  </property>

  <property>
    <name>dfs.namenode.http-address</name>
    <value>${HADOOP_NN_HOST}:50070</value>
    <description>The name of the default file system.  Either the
       literal string "local" or a host:port for NDFS.
    </description>
    <final>true</final>
  </property>

  <!-- Permissions configuration -->
  <property>
    <name>dfs.umaskmode</name>
    <value>077</value>
    <description>
      The octal umask used when creating files and directories.
    </description>
  </property>

  <property>
    <name>dfs.block.access.token.enable</name>
    <value>${SECURITY}</value>
    <description>
      Are access tokens are used as capabilities for accessing datanodes.
    </description>
  </property>

  <property>
    <name>dfs.namenode.kerberos.principal</name>
    <value>nn/_HOST@${local.realm}</value>
    <description>
      Kerberos principal name for the NameNode
    </description>
  </property>

  <property>
    <name>dfs.secondary.namenode.kerberos.principal</name>
    <value>nn/_HOST@${local.realm}</value>
    <description>
        Kerberos principal name for the secondary NameNode.
    </description>
  </property>


  <property>
    <name>dfs.namenode.kerberos.https.principal</name>
    <value>host/_HOST@${local.realm}</value>
    <description>
       The Kerberos principal for the host that the NameNode runs on.
    </description>
  </property>

  <property>
    <name>dfs.secondary.namenode.kerberos.https.principal</name>
    <value>host/_HOST@${local.realm}</value>
    <description>
      The Kerberos principal for the hostthat the secondary NameNode runs on.
    </description>
  </property>

  <property>
    <name>dfs.secondary.https.port</name>
    <value>50490</value>
    <description>The https port where secondary-namenode binds</description>

  </property>

  <property>
    <name>dfs.datanode.kerberos.principal</name>
    <value>dn/_HOST@${local.realm}</value>
    <description>
      The Kerberos principal that the DataNode runs as. "_HOST" is replaced by 
      the real host name.
    </description>
  </property>

  <property>
    <name>dfs.namenode.keytab.file</name>
    <value>/etc/security/keytabs/nn.service.keytab</value>
    <description>
      Combined keytab file containing the namenode service and host principals.
    </description>
  </property>

  <property>
    <name>dfs.secondary.namenode.keytab.file</name>
    <value>/etc/security/keytabs/nn.service.keytab</value>
    <description>
      Combined keytab file containing the namenode service and host principals.
    </description>
  </property>

  <property>
    <name>dfs.datanode.keytab.file</name>
    <value>/etc/security/keytabs/dn.service.keytab</value>
    <description>
        The filename of the keytab file for the DataNode.
    </description>
  </property>

  <property>
    <name>dfs.https.port</name>
    <value>50470</value>
    <description>The https port where namenode binds</description>
  </property>

  <property>
    <name>dfs.namenode.https-address</name>
    <value>${HADOOP_NN_HOST}:50470</value>
    <description>The https address where namenode binds</description>
  </property>

  <property>
    <name>dfs.datanode.data.dir.perm</name>
    <value>${DFS_DATANODE_DIR_PERM}</value>
    <description>The permissions that should be there on dfs.datanode.data.dir
      directories. The datanode will not come up if the permissions are
      different on existing dfs.datanode.data.dir directories. If the directories
      don't exist, they will be created with this permission.
    </description>
  </property>

  <property>
    <name>dfs.cluster.administrators</name>
    <value>${HADOOP_HDFS_USER}</value>
    <description>ACL for who all can view the default servlets in the HDFS</description>
  </property>
  
  <property>
    <name>dfs.permissions.superusergroup</name>
    <value>${HADOOP_GROUP}</value>
    <description>The name of the group of super-users.</description>
  </property>
  
  <property>
    <name>dfs.namenode.http-address</name>
    <value>${HADOOP_NN_HOST}:50070</value>
    <description>
      The address and the base port where the dfs namenode web ui will listen on.
      If the port is 0 then the server will start on a free port.
    </description>
  </property>

  <property>
    <name>dfs.namenode.https-address</name>
    <value>${HADOOP_NN_HOST}:50470</value>
  </property>

  <property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>${HADOOP_SNN_HOST}:50090</value>
    <description>
      The secondary namenode http server address and port.
      If the port is 0 then the server will start on a free port.
    </description>
  </property>

  <property>
    <name>dfs.hosts</name>
    <value>${HADOOP_CONF_DIR}/dfs.include</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>${HADOOP_CONF_DIR}/dfs.exclude</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.webhdfs.enabled</name>
    <value>${DFS_WEBHDFS_ENABLED}</value>
    <description>Enable or disable webhdfs. Defaults to false</description>
  </property>
  <property>
    <name>dfs.support.append</name>
    <value>${DFS_SUPPORT_APPEND}</value>
    <description>Enable or disable append. Defaults to false</description>
  </property>
</configuration>
