我已经安装了 hadoop 1.0.4。我通过添加以下内容修改了 /usr/bin/hadoop 文件:
HADOOP_DEBUG="-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5000"
elif [ "$COMMAND" = "jar" ] ; 然后
CLASS=org.apache.hadoop.util.RunJar
HADOOP_OPTS="$HADOOP_OPTS $HADOOP_CLIENT_OPTS"
elif [ "$COMMAND" = "jar-debug" ] ; 然后
CLASS=org.apache.hadoop.util.RunJar
HADOOP_OPTS="$HADOOP_OPTS $HADOOP_CLIENT_OPTS $HADOOP_DEBUG"
命令=“罐子”
这样我可以运行“hadoop jar SomeJar.jar SomeClass”正常启动或运行“hadoop jar-debug SomeJar.jar SomeClass”以调试模式启动。这有效,除非我想将命令行参数传递给我的类(例如在 WordCount 示例中)。例如运行:
“hadoop jar-debug WordCount.jar WordCount InputDir OutputDir”
在主类的第一行有一个断点表明 String[] args 是一个空字符串(这显然会导致程序稍后失败)。如果我使用普通的 jar 命令运行它,它可以正常工作(很明显,命令行参数可以使用普通的 jar 很好地传入)。
有人知道这里发生了什么吗?我被严重卡住了。提前致谢。