#!/bin/bash # Licensed to Cloudera, Inc. under one # or more contributor license agreements. See the NOTICE file # distributed with this work for additional information # regarding copyright ownership. Cloudera, Inc. 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. # Common functions for hudson build scripts if [ ! -e $HOME/.hue_cache ]; then mkdir -p $HOME/.hue_cache fi; check_mtime() { MTIME_FILE=${1} MTIME=$( curl -Is ${2} | awk 'BEGIN {FS=":"} { if ($1 == "Last-Modified") { print substr($2,2) } }' ) if echo "${MTIME}" | diff ${MTIME_FILE} - > /dev/null; then return 0 else echo ${MTIME} > ${MTIME_FILE} return 1 fi; } ########## # # Use $CDH_URL to control where to download Hadoop. # If not specified, it uses the $CDH variable to select an archive location. # CDH_URL=${CDH_URL:-http://nightly.cloudera.com/cdh4/cdh/4/hadoop-2.0.0-cdh4.2.0-SNAPSHOT.tar.gz} CDH_TGZ=$(basename $CDH_URL) CDH_VERSION=${CDH_TGZ/.tar.gz/} CDH_CACHE="$HOME/.hue_cache/${CDH_TGZ}" CDH_MTIME_FILE="$HOME/.hue_cache/.cdh_mtime" build_hadoop() { if ! check_mtime ${CDH_MTIME_FILE} ${CDH_URL} || [ ! -f $CDH_CACHE ]; then echo "Downloading $CDH_URL..." wget $CDH_URL -O $CDH_CACHE fi HADOOP_DIR=$HUE_ROOT/ext/hadoop export HADOOP_HDFS_HOME="$HADOOP_DIR/${CDH_VERSION}" export HADOOP_BIN=$HADOOP_HDFS_HOME/bin/hadoop mkdir -p $HADOOP_DIR rm -rf $HADOOP_HDFS_HOME echo "Unpacking $CDH_CACHE to $HADOOP_DIR" tar -C $HADOOP_DIR -xzf $CDH_CACHE } ########## MR1_URL=${MR1_URL:-http://nightly.cloudera.com/cdh4/cdh/4/mr1-2.0.0-mr1-cdh4.2.0-SNAPSHOT.tar.gz} MR1_TGZ=$(basename $MR1_URL) MR1_VERSION=${MR1_TGZ/.tar.gz/} MR1_VERSION=${MR1_VERSION/mr1/hadoop} MR1_CACHE="$HOME/.hue_cache/${MR1_TGZ}" MR1_MTIME_FILE="$HOME/.hue_cache/.mr1_mtime" build_mr1() { if ! check_mtime ${MR1_MTIME_FILE} ${MR1_URL} || [ ! -f $MR1_CACHE ]; then echo "Downloading $MR1_URL..." wget $MR1_URL -O $MR1_CACHE fi MR1_DIR=$HUE_ROOT/ext/mr1 export HADOOP_MR1_HOME="$MR1_DIR/${MR1_VERSION}" export HADOOP_MR1_BIN="$HADOOP_MR1_HOME/bin/hadoop" mkdir -p $MR1_DIR rm -rf $HADOOP_MR1_HOME echo "Unpacking $MR1_CACHE to $MR1_DIR" tar -C $MR1_DIR -xzf $MR1_CACHE } ########## HIVE_URL=${HIVE_URL:-http://nightly.cloudera.com/cdh4/cdh/4/hive-0.9.0-cdh4.2.0-SNAPSHOT.tar.gz} HIVE_TGZ=$(basename $HIVE_URL) HIVE_VERSION=${HIVE_TGZ/.tar.gz/} HIVE_CACHE="$HOME/.hue_cache/${HIVE_TGZ}" HIVE_MTIME_FILE="$HOME/.hue_cache/.hive_mtime" build_hive() { if ! check_mtime ${HIVE_MTIME_FILE} ${HIVE_URL} || [ ! -f $HIVE_CACHE ]; then echo "Downloading $HIVE_URL..." wget $HIVE_URL -O $HIVE_CACHE fi HIVE_DIR=$HUE_ROOT/ext/hive export HIVE_HOME="$HIVE_DIR/${HIVE_VERSION}" mkdir -p $HIVE_DIR rm -rf $HIVE_HOME echo "Unpacking $HIVE_CACHE to $HIVE_DIR" tar -C $HIVE_DIR -xzf $HIVE_CACHE export HIVE_CONF_DIR=$HIVE_HOME/conf } ########## OOZIE_URL=${OOZIE_URL:-http://nightly.cloudera.com/cdh4/cdh/4/oozie-3.2.0-cdh4.2.0-SNAPSHOT.tar.gz} OOZIE_TGZ=$(basename $OOZIE_URL) OOZIE_VERSION=${OOZIE_TGZ/.tar.gz/} OOZIE_CACHE="$HOME/.hue_cache/${OOZIE_TGZ}" OOZIE_MTIME_FILE="$HOME/.hue_cache/.oozie_mtime" build_oozie() { if ! check_mtime ${OOZIE_MTIME_FILE} ${OOZIE_URL} || [ ! -f $OOZIE_CACHE ]; then echo "Downloading $OOZIE_URL..." wget $OOZIE_URL -O $OOZIE_CACHE fi OOZIE_DIR=$HUE_ROOT/ext/oozie export OOZIE_HOME="$OOZIE_DIR/${OOZIE_VERSION}" mkdir -p $OOZIE_DIR rm -rf $OOZIE_HOME echo "Unpacking $OOZIE_CACHE to $OOZIE_DIR" tar -C $OOZIE_DIR -xzf $OOZIE_CACHE export OOZIE_CONF_DIR=$OOZIE_HOME/conf rm -rf $OOZIE_DIR/oozie ln -s $OOZIE_DIR/${OOZIE_VERSION} $OOZIE_DIR/oozie # easier to reference later mkdir -p $OOZIE_HOME/libext tar -C $OOZIE_HOME/libext -zxvf $OOZIE_HOME/oozie-hadooplibs-*-cdh*-SNAPSHOT.tar.gz cp $OOZIE_HOME/libext/oozie-*-SNAPSHOT/hadooplibs/hadooplib-*-mr1-cdh*-SNAPSHOT/*jar $OOZIE_HOME/libext/ tar -C $OOZIE_HOME -zxvf $OOZIE_HOME/oozie-examples.tar.gz tar -C $OOZIE_HOME -zxvf $OOZIE_HOME/oozie-sharelib-*-SNAPSHOT-sharelib.tar.gz $OOZIE_HOME/bin/oozie-setup.sh $OOZIE_HOME/bin/ooziedb.sh create -sqlfile oozie.sql -run }