@@ -121,7 +121,7 @@ CLASSPATH=${CLASSPATH}:$MAHOUT_CONF_DIR
121
121
122
122
if [ " $MAHOUT_LOCAL " != " " ]; then
123
123
echo " MAHOUT_LOCAL is set, so we don't add HADOOP_CONF_DIR to classpath."
124
- else
124
+ elif [ -n " $HADOOP_CONF_DIR " ] ; then
125
125
echo " MAHOUT_LOCAL is not set; adding HADOOP_CONF_DIR to classpath."
126
126
CLASSPATH=${CLASSPATH} :$HADOOP_CONF_DIR
127
127
fi
@@ -199,13 +199,19 @@ done
199
199
200
200
# run it
201
201
202
- if [ " $HADOOP_HOME " = " " ] || [ " $MAHOUT_LOCAL " != " " ] ; then
203
- if [ " $HADOOP_HOME " = " " ] ; then
204
- echo " no HADOOP_HOME set, running locally"
202
+ HADOOP_BINARY=$( PATH=" ${HADOOP_HOME:- ${HADOOP_PREFIX} } /bin:$PATH " which hadoop 2> /dev/null)
203
+ if [ -x " $HADOOP_BINARY " ] ; then
204
+ HADOOP_BINARY_CLASSPATH=$( " $HADOOP_BINARY " classpath)
205
+ fi
206
+
207
+ if [ ! -x " $HADOOP_BINARY " ] || [ " $MAHOUT_LOCAL " != " " ] ; then
208
+ if [ ! -x " $HADOOP_BINARY " ] ; then
209
+ echo " hadoop binary is not in PATH,HADOOP_HOME/bin,HADOOP_PREFIX/bin, running locally"
205
210
elif [ " $MAHOUT_LOCAL " != " " ] ; then
206
211
echo " MAHOUT_LOCAL is set, running locally"
207
212
fi
208
213
# echo "CLASSPATH: $CLASSPATH"
214
+ CLASSPATH=" ${CLASSPATH} :${MAHOUT_HOME/ lib/ hadoop/* } "
209
215
case $1 in
210
216
(classpath)
211
217
echo $CLASSPATH
@@ -214,30 +220,25 @@ if [ "$HADOOP_HOME" = "" ] || [ "$MAHOUT_LOCAL" != "" ] ; then
214
220
exec " $JAVA " $JAVA_HEAP_MAX $MAHOUT_OPTS -classpath " $CLASSPATH " $CLASS " $@ "
215
221
esac
216
222
else
217
- echo " Running on hadoop, using HADOOP_HOME=$HADOOP_HOME "
218
- if [ " $HADOOP_CONF_DIR " = " " ] ; then
219
- HADOOP_CONF_DIR=$HADOOP_HOME /conf
220
- echo " No HADOOP_CONF_DIR set, using $HADOOP_HOME /conf "
221
- else
222
- echo " HADOOP_CONF_DIR=$HADOOP_CONF_DIR "
223
- fi
223
+ echo " Running on hadoop, using $HADOOP_BINARY and HADOOP_CONF_DIR=$HADOOP_CONF_DIR "
224
224
225
225
if [ " $MAHOUT_JOB " = " " ] ; then
226
226
echo " ERROR: Could not find mahout-examples-*.job in $MAHOUT_HOME or $MAHOUT_HOME /examples/target, please run 'mvn install' to create the .job file"
227
227
exit 1
228
228
else
229
229
case " $1 " in
230
230
(hadoop)
231
+ shift
231
232
export HADOOP_CLASSPATH=$MAHOUT_CONF_DIR :${HADOOP_CLASSPATH} :$CLASSPATH
232
- exec " $HADOOP_HOME /bin/ $@ "
233
+ exec " $HADOOP_BINARY " " $@ "
233
234
;;
234
235
(classpath)
235
236
echo $CLASSPATH
236
237
;;
237
238
(* )
238
239
echo " MAHOUT-JOB: $MAHOUT_JOB "
239
240
export HADOOP_CLASSPATH=$MAHOUT_CONF_DIR :${HADOOP_CLASSPATH}
240
- exec " $HADOOP_HOME /bin/hadoop " --config $HADOOP_CONF_DIR jar $MAHOUT_JOB $CLASS " $@ "
241
+ exec " $HADOOP_BINARY " jar $MAHOUT_JOB $CLASS " $@ "
241
242
esac
242
243
fi
243
244
fi
0 commit comments