#!/bin/bash -xe

HDP_VERSION=$(ls /usr/hdp/ | grep -e '^2\|^3')
source /usr/sbin/get_hive_home.sh
echo "Generating yarn-site.xml for HDP ${HDP_VERSION}"

cat > ${HADOOP_CONF_DIR}/yarn-site.xml <<EOF
<configuration>
  <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
  </property>

  <property>
    <name>yarn.log-aggregation-enable</name>
    <value>true</value>
  </property>

  <property>
    <description>List of directories to store localized files in.</description>
    <name>yarn.nodemanager.local-dirs</name>
    <value>/var/lib/hadoop-yarn/cache/\${user.name}/nm-local-dir</value>
  </property>

  <property>
    <description>Where to store container logs.</description>
    <name>yarn.nodemanager.log-dirs</name>
    <value>/var/log/hadoop-yarn/containers</value>
  </property>

  <property>
    <description>Where to aggregate logs to.</description>
    <name>yarn.nodemanager.remote-app-log-dir</name>
    <value>/var/log/hadoop-yarn/apps</value>
  </property>

  <property>
     <name>yarn.application.classpath</name>
     <value>
         ${HADOOP_CONF_DIR},
         /usr/hdp/${HDP_VERSION}/hadoop-yarn/*,
         /usr/hdp/${HDP_VERSION}/hadoop-yarn/lib/*,
         /usr/hdp/${HDP_VERSION}/hadoop/*,
         /usr/hdp/${HDP_VERSION}/hadoop/lib/*,
         /usr/hdp/${HDP_VERSION}/hadoop-hdfs/*,
         /usr/hdp/${HDP_VERSION}/hadoop-hdfs/lib/*,
         /usr/hdp/${HDP_VERSION}/hadoop-mapreduce/*,
         /usr/hdp/${HDP_VERSION}/hadoop-mapreduce/lib/*,
         ${HIVE_HOME}/conf,
         ${HIVE_HOME}/lib/*
     </value>
  </property>

  <property>
     <description>Enable or disable the disk health checker service</description>
     <name>yarn.nodemanager.disk-health-checker.enable</name>
     <value>false</value>
  </property>

</configuration>
EOF

echo > ${HADOOP_CONF_DIR}/container-executor.cfg <<EOF
yarn.nodemanager.linux-container-executor.group=hadoop
banned.users=hdfs,yarn,mapred
min.user.id=1000
EOF

chown root:hadoop ${HADOOP_CONF_DIR}/container-executor.cfg
chmod 400 ${HADOOP_CONF_DIR}/container-executor.cfg
chown root:hadoop /usr/hdp/${HDP_VERSION}/hadoop-yarn/bin/container-executor
chmod 6050 /usr/hdp/${HDP_VERSION}/hadoop-yarn/bin/container-executor
