blob: c5582e3ca95ac12440ac33482c336ac7a04fd2ed [file] [log] [blame]
#! /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.
# General
# =======
## Hadoop installation
export HADOOP_HOME="${HADOOP_HOME:-/path/to/hadoop}"
## Accumulo installation
export ACCUMULO_HOME="${ACCUMULO_HOME:-/path/to/accumulo}"
## Path to Accumulo client properties
export ACCUMULO_CLIENT_PROPS="$ACCUMULO_HOME/conf/accumulo-client.properties"
if [ ! -d "$ACCUMULO_HOME" ]; then
echo "$ACCUMULO_HOME does not exist. Make sure to set ACCUMULO_HOME"
exit 1
fi
if [ ! -d "$HADOOP_HOME" ]; then
echo "$HADOOP_HOME does not exist. Make sure to set HADOOP_HOME"
exit 1
fi
# Add HADOOP conf directory to CLASSPATH, if set (for defaultFS in core-site.xml, etc.)
if [[ -n $HADOOP_CONF_DIR ]]; then
if [[ -z $CLASSPATH ]]; then
export CLASSPATH="$HADOOP_CONF_DIR"
else
export CLASSPATH="$CLASSPATH:$HADOOP_CONF_DIR"
fi
fi
# Configuration
# =============
conf_dir=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
export TEST_PROPS="${conf_dir}/accumulo-testing.properties"
if [ ! -f "$TEST_PROPS" ]; then
echo "Please create and edit accumulo-testing.properties in $conf_dir"
exit 1
fi
export TEST_LOG4J="${conf_dir}/log4j.properties"
if [ ! -f "$TEST_LOG4J" ]; then
echo "Could not find logj4.properties in $conf_dir"
exit 1
fi
# Shaded test jar
# ===============
# Versions set below will be what is included in the shaded jar
ACCUMULO_VERSION="$("$ACCUMULO_HOME"/bin/accumulo version)"; export ACCUMULO_VERSION
HADOOP_VERSION="$(hadoop version | head -n1 | awk '{print $2}')"; export HADOOP_VERSION
export ZOOKEEPER_VERSION=3.4.14
# Path to shaded test jar
at_home=$( cd "$( dirname "$conf_dir" )" && pwd )
export TEST_JAR_PATH="${at_home}/target/accumulo-testing-shaded.jar"
if [[ ! -f "$TEST_JAR_PATH" ]]; then
echo "Building $TEST_JAR_PATH"
cd "${at_home}" || exit 1
mvn clean package -P create-shade-jar -D skipTests -D accumulo.version="$ACCUMULO_VERSION" -D hadoop.version="$HADOOP_VERSION" -D zookeeper.version="$ZOOKEEPER_VERSION"
fi
# Hadoop jars
# ===========
export HADOOP_API_JAR="${at_home}"/target/dependency/hadoop-client-api.jar
export HADOOP_RUNTIME_JAR="${at_home}"/target/dependency/hadoop-client-runtime.jar
if [[ ! -f "$HADOOP_API_JAR" || ! -f "$HADOOP_RUNTIME_JAR" ]]; then
mvn dependency:copy-dependencies -Dmdep.stripVersion=true -DincludeArtifactIds=hadoop-client-api,hadoop-client-runtime -Dhadoop.version="$HADOOP_VERSION"
fi
# Agitator
# ========
# Accumulo user
AGTR_ACCUMULO_USER=$(whoami); export AGTR_ACCUMULO_USER
# Time (in minutes) between killing Accumulo masters
export AGTR_MASTER_KILL_SLEEP_TIME=60
export AGTR_MASTER_RESTART_SLEEP_TIME=2
# Time (in minutes) between killing Accumulo tservers
export AGTR_TSERVER_KILL_SLEEP_TIME=20
export AGTR_TSERVER_RESTART_SLEEP_TIME=10
# Min and max number of Accumulo tservers that the agitator will kill at once
export AGTR_TSERVER_MIN_KILL=1
export AGTR_TSERVER_MAX_KILL=1
# Amount of time (in minutes) the agitator should sleep before killing datanodes
export AGTR_DATANODE_KILL_SLEEP_TIME=20
# Amount of time (in minutes) the agitator should wait before restarting datanodes
export AGTR_DATANODE_RESTART_SLEEP_TIME=10
# Min and max number of datanodes the agitator will kill at once
export AGTR_DATANODE_MIN_KILL=1
export AGTR_DATANODE_MAX_KILL=1
# HDFS agitation
AGTR_HDFS_USER=$(whoami); export AGTR_HDFS_USER
export AGTR_HDFS=false
export AGTR_HDFS_SLEEP_TIME=10
export AGTR_HDFS_SUPERUSER=hdfs
export AGTR_HDFS_COMMAND="${HADOOP_PREFIX:-/usr/lib/hadoop}/share/hadoop/hdfs/bin/hdfs"
AGTR_HDFS_SUDO=$(command -v sudo); export AGTR_HDFS_SUDO