| <?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> |