This is an automated email from the ASF dual-hosted git repository. mwalch pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/accumulo-testing.git
The following commit(s) were added to refs/heads/master by this push: new 8cb9cbb Build shaded jar without Hadoop for M/R (#44) 8cb9cbb is described below commit 8cb9cbbf08b173ed3e9ff188c6516def2eb1bc5b Author: Mike Walch <mwa...@apache.org> AuthorDate: Wed Nov 28 14:12:28 2018 -0500 Build shaded jar without Hadoop for M/R (#44) * Hadoop jars get added to CLASSPATH when needed --- Dockerfile | 46 ++++++++++++++++++++++++++-------------------- bin/cingest | 3 +-- bin/rwalk | 2 +- conf/env.sh.example | 14 ++++++++++---- pom.xml | 4 ++-- 5 files changed, 40 insertions(+), 29 deletions(-) diff --git a/Dockerfile b/Dockerfile index 85cce6e..4038764 100644 --- a/Dockerfile +++ b/Dockerfile @@ -18,24 +18,30 @@ FROM centos:7 RUN yum install -y java-1.8.0-openjdk-devel ENV JAVA_HOME /usr/lib/jvm/java-1.8.0-openjdk -ARG TEST_JAR_VERSION -ENV TEST_JAR_VERSION 2.0.0-SNAPSHOT -ENV TEST_JAR_PATH /opt/accumulo-testing-${TEST_JAR_VERSION}-shaded.jar -ENV ACCUMULO_CLIENT_PROPS /opt/conf/accumulo-client.properties -ENV TEST_PROPS /opt/conf/accumulo-testing.properties -ENV TEST_LOG4J /opt/conf/log4j.properties.example - -RUN mkdir /opt/bin -RUN mkdir /opt/conf -RUN touch /opt/conf/env.sh - -ADD ./conf/accumulo-client.properties /opt/conf/ -ADD ./conf/accumulo-testing.properties /opt/conf/ -ADD ./conf/log4j.properties.example /opt/conf/ -ADD ./bin/cingest /opt/bin -ADD ./bin/rwalk /opt/bin -ADD ./src/main/docker/docker-entry /opt/bin -ADD ./target/accumulo-testing-${TEST_JAR_VERSION}-shaded.jar /opt/ - -ENTRYPOINT ["/opt/bin/docker-entry"] +ENV HADOOP_API_JAR /opt/at/hadoop-client-api.jar +ENV HADOOP_RUNTIME_JAR /opt/at/hadoop-client-runtime.jar +ENV TEST_JAR_PATH /opt/at/accumulo-testing-shaded.jar +ENV ACCUMULO_CLIENT_PROPS /opt/at/conf/accumulo-client.properties +ENV TEST_PROPS /opt/at/conf/accumulo-testing.properties +ENV TEST_LOG4J /opt/at/conf/log4j.properties + +RUN mkdir /opt/at +RUN mkdir /opt/at/bin +RUN mkdir /opt/at/conf + +COPY ./conf/accumulo-client.properties /opt/at/conf/ +COPY ./conf/accumulo-testing.properties /opt/at/conf/ +COPY ./conf/log4j.properties* /opt/at/conf/ +RUN if [[ ! -f /opt/at/conf/log4j.properties ]]; then mv /opt/at/conf/log4j.properties.example /opt/at/conf/log4j.properties; fi +RUN touch /opt/at/conf/env.sh + +COPY ./bin/cingest /opt/at/bin +COPY ./bin/rwalk /opt/at/bin +COPY ./src/main/docker/docker-entry /opt/at/bin + +COPY ./target/accumulo-testing-shaded.jar /opt/at/ +COPY ./target/dependency/hadoop-client-api.jar /opt/at/ +COPY ./target/dependency/hadoop-client-runtime.jar /opt/at/ + +ENTRYPOINT ["/opt/at/bin/docker-entry"] CMD ["help"] diff --git a/bin/cingest b/bin/cingest index 5801a12..6cbbb40 100755 --- a/bin/cingest +++ b/bin/cingest @@ -77,12 +77,11 @@ case "$1" in exit 1 esac -export CLASSPATH="$TEST_JAR_PATH:$CLASSPATH" +export CLASSPATH="$TEST_JAR_PATH:$HADOOP_API_JAR:$HADOOP_RUNTIME_JAR:$CLASSPATH" case "$1" in verify|moru) if [ ! -z $HADOOP_HOME ]; then - export CLASSPATH=$HADOOP_HOME/etc/hadoop:$CLASSPATH export HADOOP_USE_CLIENT_CLASSLOADER=true "$HADOOP_HOME"/bin/yarn jar "$TEST_JAR_PATH" "$ci_main" "$TEST_PROPS" "$ACCUMULO_CLIENT_PROPS" else diff --git a/bin/rwalk b/bin/rwalk index 8a17b4e..30cf0a7 100755 --- a/bin/rwalk +++ b/bin/rwalk @@ -34,7 +34,7 @@ else . "$at_home"/conf/env.sh.example fi -export CLASSPATH="$TEST_JAR_PATH:$CLASSPATH" +export CLASSPATH="$TEST_JAR_PATH:$HADOOP_API_JAR:$HADOOP_RUNTIME_JAR:$CLASSPATH" randomwalk_main="org.apache.accumulo.testing.randomwalk.Framework" diff --git a/conf/env.sh.example b/conf/env.sh.example index a3368fc..0a2cdbe 100644 --- a/conf/env.sh.example +++ b/conf/env.sh.example @@ -42,21 +42,27 @@ fi # Shaded test jar # =============== -# Version of shaded test jar -export TEST_JAR_VERSION=2.0.0-SNAPSHOT # Versions set below will be what is included in the shaded jar export ACCUMULO_VERSION="`$ACCUMULO_HOME/bin/accumulo version`" export HADOOP_VERSION="`hadoop version | head -n1 | awk '{print $2}'`" export ZOOKEEPER_VERSION=3.4.9 # Path to shaded test jar at_home=$( cd "$( dirname "$conf_dir" )" && pwd ) -export TEST_JAR_PATH="${at_home}/target/accumulo-testing-${TEST_JAR_VERSION}-shaded.jar" -if [ ! -f "$TEST_JAR_PATH" ]; then +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 diff --git a/pom.xml b/pom.xml index 8d4c940..a9c534f 100644 --- a/pom.xml +++ b/pom.xml @@ -208,11 +208,13 @@ </goals> <phase>package</phase> <configuration> + <finalName>${project.artifactId}-shaded</finalName> <shadedArtifactAttached>true</shadedArtifactAttached> <shadedClassifierName>shaded</shadedClassifierName> <artifactSet> <excludes> <exclude>org.apache.accumulo:accumulo-native</exclude> + <exclude>org.apache.hadoop:*</exclude> </excludes> </artifactSet> <filters> @@ -222,8 +224,6 @@ <exclude>META-INF/*.SF</exclude> <exclude>META-INF/*.DSA</exclude> <exclude>META-INF/*.RSA</exclude> - <!-- Twill 0.13 fails if shaded jar includes this directory !--> - <exclude>META-INF/license/*</exclude> </excludes> </filter> </filters>