blob: 402198b8206a97f7746c7572659eefeb1afb72b7 [file] [log] [blame]
<?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. -->
<% namenode_hosts = hadoop_namenode_host.to_a -%>
<configuration>
<% if ha == "enabled" -%>
<!-- HA -->
<property>
<name>dfs.federation.nameservices</name>
<value><%= nameservice_id %></value>
</property>
<property>
<name>dfs.ha.namenodes.<%= nameservice_id %></name>
<value><%= (1..namenode_hosts.length).map { |n| "nn#{n}" }.join(",") %></value>
</property>
<% namenode_hosts.each_with_index do |host,idx| -%>
<property>
<name>dfs.namenode.rpc-address.<%= nameservice_id %>.nn<%= idx+1 %></name>
<value><%= host %>:<%= hadoop_namenode_port %></value>
</property>
<property>
<name>dfs.namenode.http-address.<%= nameservice_id %>.nn<%= idx+1 %></name>
<value><%= host %>:50070</value>
</property>
<% end -%>
<% if has_variable?("shared_edits_dir") -%>
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value><%= shared_edits_dir %></value>
</property>
<% end -%>
<property>
<name>dfs.client.failover.proxy.provider.<%= nameservice_id %></name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>
<% if has_variable?("sshfence_privkey") -%>
<property>
<name>dfs.ha.fencing.methods</name>
<value>sshfence(<%= sshfence_user %>)</value>
</property>
<property>
<name>dfs.ha.fencing.ssh.private-key-files</name>
<value><%= sshfence_keypath %></value>
</property>
<% else -%>
<property>
<name>dfs.ha.fencing.methods</name>
<value></value>
</property>
<% end -%>
<% elsif hadoop_security_authentication == "kerberos" -%>
<property>
<name>dfs.block.access.token.enable</name>
<value>true</value>
</property>
<!-- NameNode security config -->
<property>
<name>dfs.https.address</name>
<value><%= namenode_hosts[0] %>:50475</value>
</property>
<property>
<name>dfs.https.port</name>
<value>50475</value>
</property>
<property>
<name>dfs.namenode.keytab.file</name>
<value>/etc/hdfs.keytab</value> <!-- path to the HDFS keytab -->
</property>
<property>
<name>dfs.namenode.kerberos.principal</name>
<value>hdfs/_HOST@<%= kerberos_realm %></value>
</property>
<property>
<name>dfs.namenode.kerberos.https.principal</name>
<value>host/_HOST@<%= kerberos_realm %></value>
</property>
<property>
<name>dfs.web.authentication.kerberos.keytab</name>
<value>/etc/hdfs.keytab</value> <!-- path to the HDFS keytab -->
</property>
<property>
<name>dfs.web.authentication.kerberos.principal</name>
<value>HTTP/_HOST@<%= kerberos_realm %></value>
</property>
<!-- Secondary NameNode security config -->
<property>
<name>dfs.secondary.http.address</name>
<value><%= namenode_hosts[0] %>:0</value>
</property>
<property>
<name>dfs.secondary.https.address</name>
<value><%= namenode_hosts[0] %>:50495</value>
</property>
<property>
<name>dfs.secondary.https.port</name>
<value>50495</value>
</property>
<property>
<name>dfs.secondary.namenode.keytab.file</name>
<value>/etc/hdfs.keytab</value> <!-- path to the HDFS keytab -->
</property>
<property>
<name>dfs.secondary.namenode.kerberos.principal</name>
<value>hdfs/_HOST@<%= kerberos_realm %></value>
</property>
<property>
<name>dfs.secondary.namenode.kerberos.https.principal</name>
<value>host/_HOST@<%= kerberos_realm %></value>
</property>
<!-- DataNode security config -->
<property>
<name>dfs.datanode.data.dir.perm</name>
<value>700</value>
</property>
<property>
<name>dfs.datanode.address</name>
<value>0.0.0.0:1004</value>
</property>
<property>
<name>dfs.datanode.http.address</name>
<value>0.0.0.0:1006</value>
</property>
<property>
<name>dfs.datanode.keytab.file</name>
<value>/etc/hdfs.keytab</value> <!-- path to the HDFS keytab -->
</property>
<property>
<name>dfs.datanode.kerberos.principal</name>
<value>hdfs/_HOST@<%= kerberos_realm %></value>
</property>
<property>
<name>dfs.datanode.kerberos.https.principal</name>
<value>host/_HOST@<%= kerberos_realm %></value>
</property>
<% end -%>
<!-- name node -->
<property>
<name>dfs.data.dir</name>
<value><%= hdfs_data_dirs.join(",") %></value>
</property>
<% if has_variable?("hdfs_support_append") %>
<property>
<name>dfs.support.append</name>
<value><%= hdfs_support_append %></value>
</property>
<% end %>
<% if has_variable?("hdfs_shortcut_reader_user") %>
<property>
<name>dfs.client.read.shortcircuit</name>
<value>true</value>
</property>
<property>
<name>dfs.block.local-path-access.user</name>
<value><%= hdfs_shortcut_reader_user %></value>
</property>
<% end %>
<property>
<name>dfs.name.dir</name>
<value><%= namenode_data_dirs.join(",") %></value>
</property>
<property>
<name>dfs.permissions.superusergroup</name>
<value>hadoop</value>
<description>The name of the group of super-users.</description>
</property>
<!-- Enable Hue plugins -->
<% if has_variable?("hadoop_dfs_namenode_plugins") -%>
<property>
<name>dfs.namenode.plugins</name>
<value><%= hadoop_dfs_namenode_plugins %></value>
<description>Comma-separated list of namenode plug-ins to be activated.
</description>
</property>
<% end -%>
<% if has_variable?("hadoop_dfs_datanode_plugins") -%>
<property>
<name>dfs.datanode.plugins</name>
<value><%= hadoop_dfs_datanode_plugins %></value>
<description>Comma-separated list of datanode plug-ins to be activated.
</description>
</property>
<% end -%>
<% if has_variable?("hadoop_namenode_thrift_port") -%>
<property>
<name>dfs.thrift.address</name>
<value>0.0.0.0:<%= hadoop_namenode_thrift_port %></value>
</property>
<% end -%>
<!-- increase the number of datanode transceivers way above the default of 256
- this is for hbase -->
<property>
<name>dfs.datanode.max.xcievers</name>
<value>4096</value>
</property>
<!-- Configurations for large cluster -->
<% if has_variable?("hadoop_config_dfs_block_size") -%>
<property>
<name>dfs.block.size</name>
<value><%= hadoop_config_dfs_block_size %></value>
</property>
<% end -%>
<% if has_variable?("hadoop_config_namenode_handler_count") -%>
<property>
<name>dfs.namenode.handler.count</name>
<value><%= hadoop_config_namenode_handler_count %></value>
</property>
<% end -%>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
</configuration>