From 593ef7b228e42e473f7d5db690817ebe9523f113 Mon Sep 17 00:00:00 2001 From: Karthik Kambatla Date: Thu, 27 Feb 2014 02:19:13 +0000 Subject: [PATCH] YARN-1429. *nix: Allow a way for users to augment classpath of YARN daemons. (Jarek Jarcec Cecho via kasha) git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/branches/branch-2@1572406 13f79535-47bb-0310-9956-ffa450edef68 --- hadoop-yarn-project/CHANGES.txt | 3 +++ hadoop-yarn-project/hadoop-yarn/bin/yarn | 19 +++++++++++++++++-- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/hadoop-yarn-project/CHANGES.txt b/hadoop-yarn-project/CHANGES.txt index dd05232164b..b81a14c4a9b 100644 --- a/hadoop-yarn-project/CHANGES.txt +++ b/hadoop-yarn-project/CHANGES.txt @@ -17,6 +17,9 @@ Release 2.5.0 - UNRELEASED YARN-1561. Fix a generic type warning in FairScheduler. (Chen He via junping_du) + YARN-1429. *nix: Allow a way for users to augment classpath of YARN daemons. + (Jarek Jarcec Cecho via kasha) + OPTIMIZATIONS BUG FIXES diff --git a/hadoop-yarn-project/hadoop-yarn/bin/yarn b/hadoop-yarn-project/hadoop-yarn/bin/yarn index cc0fc49da38..24cf015b171 100644 --- a/hadoop-yarn-project/hadoop-yarn/bin/yarn +++ b/hadoop-yarn-project/hadoop-yarn/bin/yarn @@ -22,7 +22,12 @@ # # JAVA_HOME The java implementation to use. Overrides JAVA_HOME. # -# YARN_CLASSPATH Extra Java CLASSPATH entries. +# YARN_USER_CLASSPATH Additional user CLASSPATH entries. +# +# YARN_USER_CLASSPATH_FIRST If set to non empty value then the user classpath +# specified in YARN_USER_CLASSPATH will be +# appended at the beginning of YARN's final +# classpath instead of at the end. # # YARN_HEAPSIZE The maximum amount of heap to use, in MB. # Default is 1000. @@ -163,6 +168,17 @@ fi CLASSPATH=${CLASSPATH}:$HADOOP_YARN_HOME/${YARN_DIR}/* CLASSPATH=${CLASSPATH}:$HADOOP_YARN_HOME/${YARN_LIB_JARS_DIR}/* +# Add user defined YARN_USER_CLASSPATH to the class path (if defined) +if [ -n "$YARN_USER_CLASSPATH" ]; then + if [ -n "$YARN_USER_CLASSPATH_FIRST" ]; then + # User requested to add the custom entries at the beginning + CLASSPATH=${YARN_USER_CLASSPATH}:${CLASSPATH} + else + # By default we will just append the extra entries at the end + CLASSPATH=${CLASSPATH}:${YARN_USER_CLASSPATH} + fi +fi + # so that filenames w/ spaces are handled correctly in loops below IFS= @@ -249,4 +265,3 @@ if [ "x$JAVA_LIBRARY_PATH" != "x" ]; then fi exec "$JAVA" -Dproc_$COMMAND $JAVA_HEAP_MAX $YARN_OPTS -classpath "$CLASSPATH" $CLASS "$@" -fi