#!/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. # This is sourced in by bin/sqoop to set environment variables prior to # invoking Hadoop. bin="$1" if [ -z "${bin}" ]; then bin=`dirname $0` bin=`cd ${bin} && pwd` fi if [ -z "$SQOOP_HOME" ]; then export SQOOP_HOME=${bin}/.. fi # Find paths to our dependency systems. If they are unset, use CDH defaults. if [ -z "${HADOOP_HOME}" ]; then HADOOP_HOME=/usr/lib/hadoop fi if [ -z "${HBASE_HOME}" ]; then HBASE_HOME=/usr/lib/hbase fi if [ -z "${ZOOKEEPER_HOME}" ]; then ZOOKEEPER_HOME=/usr/lib/zookeeper fi # Check: If we can't find our dependencies, give up here. if [ ! -d "${HADOOP_HOME}" ]; then echo "Error: $HADOOP_HOME does not exist!" echo 'Please set $HADOOP_HOME to the root of your Hadoop installation.' exit 1 fi if [ ! -d "${HBASE_HOME}" ]; then echo "Error: $HBASE_HOME does not exist!" echo 'Please set $HBASE_HOME to the root of your HBase installation.' exit 1 fi if [ ! -d "${ZOOKEEPER_HOME}" ]; then echo "Error: $ZOOKEEPER_HOME does not exist!" echo 'Please set $ZOOKEEPER_HOME to the root of your ZooKeeper installation.' exit 1 fi # Where to find the main Sqoop jar SQOOP_JAR_DIR=$SQOOP_HOME # Where to find the shim jars. SQOOP_SHIM_DIR=$SQOOP_HOME/shims # If there's a "build" subdir, override with this, so we use # the newly-compiled copy. if [ -d "$SQOOP_JAR_DIR/build" ]; then SQOOP_JAR_DIR="${SQOOP_JAR_DIR}/build" if [ -d "$SQOOP_JAR_DIR/shims" ]; then SQOOP_SHIM_DIR="$SQOOP_JAR_DIR/shims" fi fi function add_to_classpath() { dir=$1 for f in $dir/*.jar; do SQOOP_CLASSPATH=${SQOOP_CLASSPATH}:$f; done export SQOOP_CLASSPATH } # Add sqoop dependencies to classpath. SQOOP_CLASSPATH="" if [ -d "$SQOOP_HOME/lib" ]; then add_to_classpath $SQOOP_HOME/lib fi # Add HBase to dependency list add_to_classpath $HBASE_HOME add_to_classpath $HBASE_HOME/lib HBASE_CONF_DIR=${HBASE_CONF_DIR:-${HBASE_HOME}/conf} SQOOP_CLASSPATH=${HBASE_CONF_DIR}:${SQOOP_CLASSPATH} add_to_classpath $ZOOKEEPER_HOME add_to_classpath $ZOOKEEPER_HOME/lib SQOOP_CONF_DIR=${SQOOP_CONF_DIR:-${SQOOP_HOME}/conf} SQOOP_CLASSPATH=${SQOOP_CONF_DIR}:${SQOOP_CLASSPATH} # If there's a build subdir, use Ivy-retrieved dependencies too. if [ -d "$SQOOP_HOME/build/ivy/lib/sqoop" ]; then for f in $SQOOP_HOME/build/ivy/lib/sqoop/*/*.jar; do SQOOP_CLASSPATH=${SQOOP_CLASSPATH}:$f; done fi add_to_classpath ${SQOOP_JAR_DIR} export SQOOP_CLASSPATH export SQOOP_CONF_DIR export SQOOP_JAR_DIR export SQOOP_SHIM_DIR export HADOOP_CLASSPATH="${SQOOP_CLASSPATH}:${HADOOP_CLASSPATH}" export HADOOP_HOME export HBASE_HOME export HADOOP_OPTS="-Dsqoop.shim.jar.dir=${SQOOP_SHIM_DIR} ${HADOOP_OPTS}"