BIGTOP-3501. Update hadoop-kms resources based on hadoop-3. (#738)

* BIGTOP-3501. Update hadoop-kms resources based on hadoop-3.

* added blank kms-site.xml to hadoop-kms package.

* added example hadoop-env.sh to hadoop-kms package.
diff --git a/bigtop-packages/src/common/hadoop/hadoop-kms.svc b/bigtop-packages/src/common/hadoop/hadoop-kms.svc
index cf44a48..50d83e4 100644
--- a/bigtop-packages/src/common/hadoop/hadoop-kms.svc
+++ b/bigtop-packages/src/common/hadoop/hadoop-kms.svc
@@ -15,11 +15,11 @@
 HADOOP_NAME="kms"
 DAEMON="hadoop-$HADOOP_NAME"
 DESC="Hadoop $HADOOP_NAME"
-EXEC_PATH="/usr/lib/hadoop-kms/sbin/kms.sh"
+EXEC_PATH="/usr/lib/hadoop/sbin/kms.sh"
 SVC_USER="$HADOOP_NAME"
 WORKING_DIR="/var/run/hadoop-kms"
 DAEMON_FLAGS="$HADOOP_NAME"
-CONF_DIR="/etc/$DAEMON/conf"
+CONF_DIR="/etc/hadoop/conf"
 PIDFILE="/var/run/$DAEMON/hadoop-$SVC_USER-$HADOOP_NAME.pid"
 
 CHKCONFIG=${CHKCONFIG:-"2345 90 10"}
@@ -28,42 +28,27 @@
 generate_start() {
 
 cat <<'__EOT__'
+
 start() {
   [ -x $EXEC_PATH ] || exit $ERROR_PROGRAM_NOT_INSTALLED
   [ -d $CONF_DIR ] || exit $ERROR_PROGRAM_NOT_CONFIGURED
 
-  export KMS_USER="$SVC_USER"
-  export KMS_CONFIG="$CONF_DIR"
-  export KMS_LOG=${KMS_LOG:-"/var/log/hadoop-kms/"}
-  export KMS_TEMP="$(dirname $PIDFILE)"
-  export KMS_SLEEP_TIME="$SLEEP_TIME"
-  export CATALINA_BASE=${CATALINA_BASE:-"/var/lib/hadoop-kms/tomcat-deployment"}
-  export CATALINA_PID="$PIDFILE"
-  export CATALINA_TMPDIR="$KMS_TEMP"
+  runuser -s /bin/bash $SVC_USER -c "cd $WORKING_DIR && $EXEC_PATH start $DAEMON_FLAGS"
 
-  . /usr/lib/hadoop-kms/tomcat-deployment.sh
-
-  runuser -s /bin/bash -c "${EXEC_PATH} start $DAEMON_FLAGS" $KMS_USER
-
-  for second in {5..0}
-  do
-    checkstatusofproc
-    RETVAL=$?
-    if [ "$RETVAL" -eq $RETVAL_SUCCESS ] ; then
-      break
-    fi
-    sleep 1
-  done
+  # Some processes are slow to start
+  sleep $SLEEP_TIME
+  checkstatusofproc
+  RETVAL=$?
 
   if [ $RETVAL -eq $STATUS_RUNNING ]; then
     touch $LOCKFILE
-    log_success_msg "Started ${DESC} (${DAEMON}): "
+    log_success_msg "Started ${DESC}: "
   else
-    log_failure_msg "Failed to start ${DESC}. Return value: $RETVAL"
+	log_failure_msg "Failed to start ${DESC}. Return value: $RETVAL"
   fi
-
   return $RETVAL
 }
+
 __EOT__
 
 }
@@ -71,24 +56,19 @@
 generate_stop() {
 
 cat <<'__EOT__'
-stop() {
 
-  # FIXME: workaround for BIGTOP-537
-  checkstatusofproc
-  if [ "$?" = "$STATUS_RUNNING" ] ; then
-    su -s /bin/bash $SVC_USER -c "${EXEC_PATH} stop $SLEEP_TIME -force"
-    RETVAL=$?
-  else
-    RETVAL=$RETVAL_SUCCESS
-  fi
+stop() {
+  start_daemon $EXEC_PATH stop $DAEMON_FLAGS
+  RETVAL=$?
 
   if [ $RETVAL -eq $RETVAL_SUCCESS ]; then
-    log_success_msg "Stopped ${DESC}: "
-    rm -f $LOCKFILE $PIDFILE
-  else
-    log_failure_msg "Failure to stop ${DESC}. Return value: $RETVAL"
-  fi
+	 log_success_msg "Stopped ${DESC}: "
+	 rm -f $LOCKFILE $PIDFILE
+ else
+	 log_failure_msg "Failed to stop ${DESC}. Return value: $RETVAL."
+ fi
 }
+
 __EOT__
 
 }
diff --git a/bigtop-packages/src/common/hadoop/install_hadoop.sh b/bigtop-packages/src/common/hadoop/install_hadoop.sh
index 7d0b902..b79e82f 100755
--- a/bigtop-packages/src/common/hadoop/install_hadoop.sh
+++ b/bigtop-packages/src/common/hadoop/install_hadoop.sh
@@ -41,7 +41,6 @@
   -l 'installed-lib-dir:' \
   -l 'hadoop-dir:' \
   -l 'httpfs-dir:' \
-  -l 'kms-dir:' \
   -l 'hdfs-dir:' \
   -l 'yarn-dir:' \
   -l 'mapreduce-dir:' \
@@ -72,9 +71,6 @@
         --httpfs-dir)
         HTTPFS_DIR=$2 ; shift 2
         ;;
-        --kms-dir)
-        KMS_DIR=$2 ; shift 2
-        ;;
         --hadoop-dir)
         HADOOP_DIR=$2 ; shift 2
         ;;
@@ -144,7 +140,6 @@
 MAPREDUCE_DIR=${MAPREDUCE_DIR:-$PREFIX/usr/lib/hadoop-mapreduce}
 CLIENT_DIR=${CLIENT_DIR:-$PREFIX/usr/lib/hadoop/client}
 HTTPFS_DIR=${HTTPFS_DIR:-$PREFIX/usr/lib/hadoop-httpfs}
-KMS_DIR=${KMS_DIR:-$PREFIX/usr/lib/hadoop-kms}
 SYSTEM_LIB_DIR=${SYSTEM_LIB_DIR:-/usr/lib}
 BIN_DIR=${BIN_DIR:-$PREFIX/usr/bin}
 DOC_DIR=${DOC_DIR:-$PREFIX/usr/share/doc/hadoop}
@@ -236,7 +231,7 @@
 
 # sbin
 install -d -m 0755 ${HADOOP_DIR}/sbin
-cp -a ${BUILD_DIR}/sbin/{hadoop-daemon,hadoop-daemons,workers}.sh ${HADOOP_DIR}/sbin
+cp -a ${BUILD_DIR}/sbin/{hadoop-daemon,hadoop-daemons,workers,kms}.sh ${HADOOP_DIR}/sbin
 install -d -m 0755 ${HDFS_DIR}/sbin
 cp -a ${BUILD_DIR}/sbin/{distribute-exclude,refresh-namenodes}.sh ${HDFS_DIR}/sbin
 install -d -m 0755 ${YARN_DIR}/sbin
@@ -330,8 +325,6 @@
 install -d -m 0755 ${PREFIX}/var/lib/hadoop-httpfs
 
 # KMS
-install -d -m 0755 ${KMS_DIR}/sbin
-cp ${BUILD_DIR}/sbin/kms.sh ${KMS_DIR}/sbin/
 install -d -m 0755 ${PREFIX}/var/lib/hadoop-kms
 
 
@@ -362,7 +355,7 @@
 install -d -m 0755 $PREFIX/var/{log,run,lib}/hadoop-mapreduce
 
 # Remove all source and create version-less symlinks to offer integration point with other projects
-for DIR in ${HADOOP_DIR} ${HDFS_DIR} ${YARN_DIR} ${MAPREDUCE_DIR} ${HTTPFS_DIR} ${KMS_DIR}; do
+for DIR in ${HADOOP_DIR} ${HDFS_DIR} ${YARN_DIR} ${MAPREDUCE_DIR} ${HTTPFS_DIR} ; do
   (cd $DIR &&
    rm -fv *-sources.jar
    rm -fv lib/hadoop-*.jar
diff --git a/bigtop-packages/src/common/hadoop/kms-tomcat-deployment.sh b/bigtop-packages/src/common/hadoop/kms-tomcat-deployment.sh
deleted file mode 100644
index 3872fd0..0000000
--- a/bigtop-packages/src/common/hadoop/kms-tomcat-deployment.sh
+++ /dev/null
@@ -1,37 +0,0 @@
-#!/bin/bash
-
-# 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.
-
-# This script must be sourced so that it can set CATALINA_BASE for the parent process
-
-TOMCAT_CONF=${TOMCAT_CONF:-`readlink -e /etc/hadoop-kms/tomcat-conf`}
-TOMCAT_DEPLOYMENT=${TOMCAT_DEPLOYMENT:-/var/lib/hadoop-kms/tomcat-deployment}
-KMS_HOME=${KMS_HOME:-/usr/lib/hadoop-kms}
-
-rm -rf ${TOMCAT_DEPLOYMENT}
-mkdir ${TOMCAT_DEPLOYMENT}
-cp -r ${TOMCAT_CONF}/conf ${TOMCAT_DEPLOYMENT}/
-cp -r ${KMS_HOME}/webapps ${TOMCAT_DEPLOYMENT}/
-cp -r ${TOMCAT_CONF}/WEB-INF/* ${TOMCAT_DEPLOYMENT}/webapps/kms/WEB-INF/
-
-if [ -n "${BIGTOP_CLASSPATH}" ] ; then
-  sed -i -e "s#^\(common.loader=.*\)\$#\1,${BIGTOP_CLASSPATH/:/,}#" ${TOMCAT_DEPLOYMENT}/conf/catalina.properties
-fi
-
-chown -R kms:kms ${TOMCAT_DEPLOYMENT}
-chmod -R 755 ${TOMCAT_DEPLOYMENT}
-
-export CATALINA_BASE=${TOMCAT_DEPLOYMENT}
diff --git a/bigtop-packages/src/common/hadoop/kms.default b/bigtop-packages/src/common/hadoop/kms.default
index ac537f8..692d477 100644
--- a/bigtop-packages/src/common/hadoop/kms.default
+++ b/bigtop-packages/src/common/hadoop/kms.default
@@ -12,13 +12,6 @@
 # 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.
-export KMS_USER=kms
-export KMS_CONFIG=/etc/hadoop-kms/conf
-export KMS_LOG=/var/log/hadoop-kms/
-export KMS_TEMP=/var/run/hadoop-kms/
-export KMS_CATALINA_HOME=/usr/lib/bigtop-tomcat
-export CATALINA_PID=/var/run/hadoop-kms/hadoop-kms-kms.pid
-export CATALINA_BASE=/var/lib/hadoop-kms/tomcat-deployment
-export CATALINA_TMPDIR=/var/run/hadoop-kms/
-# KMS_HTTP_PORT
-# KMS_ADMIN_PORT
+export HADOOP_CONF_DIR=/etc/hadoop/conf
+export HADOOP_LOG_DIR=/var/log/hadoop-kms
+export HADOOP_PID_DIR=/var/run/hadoop-kms
diff --git a/bigtop-packages/src/common/hadoop/patch5-fix-kms-shellprofile.diff b/bigtop-packages/src/common/hadoop/patch5-fix-kms-shellprofile.diff
new file mode 100644
index 0000000..75413b0
--- /dev/null
+++ b/bigtop-packages/src/common/hadoop/patch5-fix-kms-shellprofile.diff
@@ -0,0 +1,14 @@
+diff --git a/hadoop-common-project/hadoop-kms/src/main/libexec/shellprofile.d/hadoop-kms.sh b/hadoop-common-project/hadoop-kms/src/main/libexec/shellprofile.d/hadoop-kms.sh
+index 0d084bb36e6..dafe7459f4a 100755
+--- a/hadoop-common-project/hadoop-kms/src/main/libexec/shellprofile.d/hadoop-kms.sh
++++ b/hadoop-common-project/hadoop-kms/src/main/libexec/shellprofile.d/hadoop-kms.sh
+@@ -49,9 +49,4 @@ function hadoop_subcommand_kms
+     "-Dkms.config.dir=${HADOOP_CONF_DIR}"
+   hadoop_add_param HADOOP_OPTS "-Dkms.log.dir=" \
+     "-Dkms.log.dir=${HADOOP_LOG_DIR}"
+-
+-  if [[ "${HADOOP_DAEMON_MODE}" == "default" ]] ||
+-     [[ "${HADOOP_DAEMON_MODE}" == "start" ]]; then
+-    hadoop_mkdir "${KMS_TEMP:-${HADOOP_HOME}/temp}"
+-  fi
+ }
diff --git a/bigtop-packages/src/deb/hadoop/hadoop-kms.dirs b/bigtop-packages/src/deb/hadoop/hadoop-kms.dirs
index df40a84..d5ca2e8 100644
--- a/bigtop-packages/src/deb/hadoop/hadoop-kms.dirs
+++ b/bigtop-packages/src/deb/hadoop/hadoop-kms.dirs
@@ -1,2 +1 @@
-/usr/lib/hadoop-kms
 /var/log/hadoop-kms
diff --git a/bigtop-packages/src/deb/hadoop/hadoop-kms.install b/bigtop-packages/src/deb/hadoop/hadoop-kms.install
index 63cdd3c..64aa17f 100644
--- a/bigtop-packages/src/deb/hadoop/hadoop-kms.install
+++ b/bigtop-packages/src/deb/hadoop/hadoop-kms.install
@@ -1,3 +1,5 @@
-/etc/default/hadoop-kms
-/usr/lib/hadoop-kms
+/etc/hadoop/conf.empty/kms-acls.xml
+/etc/hadoop/conf.empty/kms-env.sh
+/etc/hadoop/conf.empty/kms-log4j.properties
+/etc/hadoop/conf.empty/kms-site.xml
 /var/lib/hadoop-kms
diff --git a/bigtop-packages/src/deb/hadoop/rules b/bigtop-packages/src/deb/hadoop/rules
index 5a00588..de0a1f7 100755
--- a/bigtop-packages/src/deb/hadoop/rules
+++ b/bigtop-packages/src/deb/hadoop/rules
@@ -58,7 +58,6 @@
 	  --distro-dir=debian \
 	  --build-dir=${PWD}/build \
 	  --httpfs-dir=debian/tmp/usr/lib/hadoop-httpfs \
-	  --kms-dir=debian/tmp/usr/lib/hadoop-kms \
 	  --system-lib-dir=debian/tmp/usr/lib/ \
 	  --system-libexec-dir=debian/tmp/usr/lib/hadoop/libexec/ \
 	  --system-include-dir=debian/tmp/usr/include \
diff --git a/bigtop-packages/src/rpm/hadoop/SPECS/hadoop.spec b/bigtop-packages/src/rpm/hadoop/SPECS/hadoop.spec
index 9c7e6f6..729f4e3 100644
--- a/bigtop-packages/src/rpm/hadoop/SPECS/hadoop.spec
+++ b/bigtop-packages/src/rpm/hadoop/SPECS/hadoop.spec
@@ -29,7 +29,6 @@
 %define lib_hadoop_dirname /usr/lib
 %define lib_hadoop %{lib_hadoop_dirname}/%{name}
 %define lib_httpfs %{lib_hadoop_dirname}/%{name}-httpfs
-%define lib_kms %{lib_hadoop_dirname}/%{name}-kms
 %define lib_hdfs %{lib_hadoop_dirname}/%{name}-hdfs
 %define lib_yarn %{lib_hadoop_dirname}/%{name}-yarn
 %define lib_mapreduce %{lib_hadoop_dirname}/%{name}-mapreduce
@@ -511,7 +510,6 @@
   --distro-dir=$RPM_SOURCE_DIR \
   --build-dir=$PWD/build \
   --httpfs-dir=$RPM_BUILD_ROOT%{lib_httpfs} \
-  --kms-dir=$RPM_BUILD_ROOT%{lib_kms} \
   --system-include-dir=$RPM_BUILD_ROOT%{_includedir} \
   --system-lib-dir=$RPM_BUILD_ROOT%{_libdir} \
   --system-libexec-dir=$RPM_BUILD_ROOT/%{lib_hadoop}/libexec \
@@ -730,9 +728,12 @@
 
 %files kms
 %defattr(-,root,root)
+%config(noreplace) %{etc_hadoop}/conf.empty/kms-acls.xml
+%config(noreplace) %{etc_hadoop}/conf.empty/kms-env.sh
+%config(noreplace) %{etc_hadoop}/conf.empty/kms-log4j.properties
+%config(noreplace) %{etc_hadoop}/conf.empty/kms-site.xml
 %config(noreplace) /etc/default/%{name}-kms
 %{initd_dir}/%{name}-kms
-%{lib_kms}
 %attr(0775,kms,kms) %{run_kms}
 %attr(0775,kms,kms) %{log_kms}
 %attr(0775,kms,kms) %{state_kms}