#!/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. # # # Note: This script depends on 8 environment variables to function correctly: # a) CLASSPATH # b) HADOOP_HOME # c) HADOOP_CONF_DIR # d) HADOOP_LOG_DIR # e) LIBHDFS_BUILD_DIR # f) LIBHDFS_INSTALL_DIR # g) OS_NAME # h) CLOVER_JAR # All these are passed by build.xml. # HDFS_TEST=hdfs_test HADOOP_LIB_DIR=$HADOOP_HOME/lib HADOOP_BIN_DIR=$HADOOP_HOME/bin COMMON_BUILD_DIR=$HADOOP_HOME/build/ivy/lib/Hadoop-Hdfs/common COMMON_JAR=$COMMON_BUILD_DIR/hadoop-common-0.22.0-SNAPSHOT.jar cat > $HADOOP_CONF_DIR/core-site.xml < hadoop.tmp.dir file:///$LIBHDFS_TEST_DIR fs.default.name hdfs://localhost:23000/ EOF cat > $HADOOP_CONF_DIR/hdfs-site.xml < dfs.replication 1 dfs.support.append true dfs.namenode.logging.level DEBUG EOF cat > $HADOOP_CONF_DIR/slaves < /dev/null | tr "\n" " "` ;; aix*) lib_jvm_dir=`find $javabasedir \( \ \( -name client -type d -prune \) -o \ \( -name "libjvm.*" -exec dirname {} \; \) \) 2> /dev/null | tr "\n" " "` if test -z "$lib_jvm_dir"; then lib_jvm_dir=`find $javabasedir \( \ \( -name client -type d -prune \) -o \ \( -name "libkaffevm.*" -exec dirname {} \; \) \) 2> /dev/null | tr "\n" " "` fi ;; *) lib_jvm_dir=`find $javabasedir -follow \( \ \( -name client -type d -prune \) -o \ \( -name "libjvm.*" -exec dirname {} \; \) \) 2> /dev/null | tr "\n" " "` if test -z "$lib_jvm_dir"; then lib_jvm_dir=`find $javabasedir -follow \( \ \( -name client -type d -prune \) -o \ \( -name "libkaffevm.*" -exec dirname {} \; \) \) 2> /dev/null | tr "\n" " "` fi ;; esac echo $lib_jvm_dir } LIB_JVM_DIR=`findlibjvm` echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" echo LIB_JVM_DIR = $LIB_JVM_DIR echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" # Put delays to ensure hdfs is up and running and also shuts down # after the tests are complete cd $HADOOP_HOME echo Y | $HADOOP_BIN_DIR/hdfs namenode -format && $HADOOP_BIN_DIR/hadoop-daemon.sh --script $HADOOP_BIN_DIR/hdfs start namenode && sleep 2 $HADOOP_BIN_DIR/hadoop-daemon.sh --script $HADOOP_BIN_DIR/hdfs start datanode && sleep 2 echo "Wait 30s for the datanode to start up..." sleep 30 CLASSPATH=$CLASSPATH LD_PRELOAD="$LIB_JVM_DIR/libjvm.so:$LIBHDFS_INSTALL_DIR/libhdfs.so:" $LIBHDFS_BUILD_DIR/$HDFS_TEST BUILD_STATUS=$? sleep 3 $HADOOP_BIN_DIR/hadoop-daemon.sh --script $HADOOP_BIN_DIR/hdfs stop datanode && sleep 2 $HADOOP_BIN_DIR/hadoop-daemon.sh --script $HADOOP_BIN_DIR/hdfs stop namenode && sleep 2 if [ $unpacked_common_bin_dir -eq 1 ]; then rm -rf bin.tgz fi echo exiting with $BUILD_STATUS exit $BUILD_STATUS