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