diff --git hcatalog/bin/common.sh hcatalog/bin/common.sh
new file mode 100644
index 0000000..6c4bef2
--- /dev/null
+++ hcatalog/bin/common.sh
@@ -0,0 +1,41 @@
+#!/usr/bin/env 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.
+
+#====================================
+#determine HADOOP_HOME if possible
+#====================================
+function find_hadoop_home() {
+ # check for hadoop in the path
+ HADOOP_IN_PATH=`which hadoop 2>/dev/null`
+ if [ -f ${HADOOP_IN_PATH} ]; then
+ HADOOP_DIR=`dirname "$HADOOP_IN_PATH"`/..
+ fi
+ # HADOOP_HOME env variable overrides hadoop in the path
+ HADOOP_HOME=${HADOOP_HOME:-${HADOOP_PREFIX:-$HADOOP_DIR}}
+ if [ "$HADOOP_HOME" == "" ]; then
+ echo "Cannot find hadoop installation: \$HADOOP_HOME or \$HADOOP_PREFIX must be set or hadoop must be in the path";
+ exit 4;
+ fi
+
+ HADOOP=$HADOOP_HOME/bin/hadoop
+ if [ ! -f ${HADOOP} ]; then
+ echo "Cannot find hadoop installation: \$HADOOP_HOME or \$HADOOP_PREFIX must be set or hadoop must be in the path";
+ exit 4;
+ fi
+}
diff --git hcatalog/bin/hcat-config.sh hcatalog/bin/hcat-config.sh
index 9368b53..934d887 100644
--- hcatalog/bin/hcat-config.sh
+++ hcatalog/bin/hcat-config.sh
@@ -65,6 +65,9 @@ if [ -f "${HCAT_CONF_DIR}/hcat-env.sh" ]; then
. "${HCAT_CONF_DIR}/hcat-env.sh"
fi
+source $HCAT_PREFIX/bin/common.sh
+find_hadoop_home
+
#determine where hadoop is
#check HADOOP_HOME and then check HADOOP_PREFIX
if [ -f ${HADOOP_HOME}/bin/hadoop ]; then
diff --git hcatalog/webhcat/svr/src/main/bin/webhcat_config.sh hcatalog/webhcat/svr/src/main/bin/webhcat_config.sh
index bccb8d3..52f96ff 100644
--- hcatalog/webhcat/svr/src/main/bin/webhcat_config.sh
+++ hcatalog/webhcat/svr/src/main/bin/webhcat_config.sh
@@ -111,6 +111,9 @@ if [ ! -d ${TEMPLETON_HOME}/share/webhcat ]; then
die "TEMPLETON_HOME=${TEMPLETON_HOME} is invalid";
fi
+source $WEBHCAT_PREFIX/bin/common.sh
+find_hadoop_home
+
#====================================
#determine where hadoop is
#====================================
diff --git packaging/src/main/assembly/bin.xml packaging/src/main/assembly/bin.xml
index 7a08fef..a97ef7d 100644
--- packaging/src/main/assembly/bin.xml
+++ packaging/src/main/assembly/bin.xml
@@ -259,6 +259,7 @@
hcatcfg.py
hcat.py
templeton.cmd
+ common.sh
hcatalog/bin