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 "$@"
 


Reply via email to