Author: jnioche
Date: Wed Jul 14 13:56:00 2010
New Revision: 964050
URL: http://svn.apache.org/viewvc?rev=964050&view=rev
Log:
NUTCH-848 Error when calling nutch solrindex in deployed configuration
Modified:
nutch/trunk/src/bin/nutch
Modified: nutch/trunk/src/bin/nutch
URL:
http://svn.apache.org/viewvc/nutch/trunk/src/bin/nutch?rev=964050&r1=964049&r2=964050&view=diff
==============================================================================
--- nutch/trunk/src/bin/nutch (original)
+++ nutch/trunk/src/bin/nutch Wed Jul 14 13:56:00 2010
@@ -72,6 +72,11 @@ shift
THIS_DIR=`dirname "$THIS"`
NUTCH_HOME=`cd "$THIS_DIR/.." ; pwd`
+# determine HADOOP_HOME
+if [ "$HADOOP_HOME" = "" ]; then
+ HADOOP_HOME=$NUTCH_HOME
+fi
+
# some Java parameters
if [ "$NUTCH_JAVA_HOME" != "" ]; then
#echo "run java in $NUTCH_JAVA_HOME"
@@ -83,6 +88,21 @@ if [ "$JAVA_HOME" = "" ]; then
exit 1
fi
+local=true
+
+# NUTCH_JOB
+if [ -f ${NUTCH_HOME}/nutch-*.job ]; then
+ local=false
+ for f in $NUTCH_HOME/nutch-*.job; do
+ NUTCH_JOB=$f;
+ done
+fi
+
+# cygwin path translation
+if $cygwin; then
+ NUTCH_JOB=`cygpath -p -w "$NUTCH_JOB"`
+fi
+
JAVA=$JAVA_HOME/bin/java
JAVA_HEAP_MAX=-Xmx1000m
@@ -101,22 +121,14 @@ CLASSPATH=${CLASSPATH}:$JAVA_HOME/lib/to
IFS=
# add libs to CLASSPATH
-for f in $NUTCH_HOME/lib/*.jar; do
- CLASSPATH=${CLASSPATH}:$f;
-done
-if [ -f ${NUTCH_HOME}/nutch-*.job ]; then
- # distributed runtime
- for f in $NUTCH_HOME/nutch-*.job; do
- CLASSPATH=${CLASSPATH}:$f;
- done
- for f in $NUTCH_HOME/hadoop-*.jar; do
- CLASSPATH=${CLASSPATH}:$f;
+if $local; then
+ for f in $NUTCH_HOME/lib/*.jar; do
+ CLASSPATH=${CLASSPATH}:$f;
done
-else
# local runtime
# add plugins to classpath
if [ -d "$NUTCH_HOME/plugins" ]; then
- CLASSPATH=${NUTCH_HOME}:${CLASSPATH}
+ CLASSPATH=${NUTCH_HOME}:${CLASSPATH}
fi
fi
@@ -126,6 +138,7 @@ if $cygwin; then
fi
# setup 'java.library.path' for native-hadoop code if necessary
+# used only in local mode
JAVA_LIBRARY_PATH=''
if [ -d "${NUTCH_HOME}/lib/native" ]; then
JAVA_PLATFORM=`CLASSPATH=${CLASSPATH} ${JAVA}
org.apache.hadoop.util.PlatformName | sed -e 's/ /_/g'`
@@ -220,6 +233,19 @@ else
CLASS=$COMMAND
fi
+# distributed mode
+EXEC_CALL="$HADOOP_HOME/bin/hadoop jar $NUTCH_JOB"
+
+if $local; then
+ EXEC_CALL="$JAVA $JAVA_HEAP_MAX $NUTCH_OPTS -classpath $CLASSPATH"
+else
+ # check that we are really in a hadoop config
+ if [ ! -f ${HADOOP_HOME}/bin/hadoop ]; then
+ echo "Can't find Hadoop scripts. Set HADOOP_HOME to a valid home of Hadoop
installation."
+ exit -1;
+ fi
+fi
+
# run it
-exec "$JAVA" $JAVA_HEAP_MAX $NUTCH_OPTS -classpath "$CLASSPATH" $CLASS "$@"
+exec $EXEC_CALL $CLASS "$@"