Java 使用Eclipse调试多个hadoop JVM
我有一个问题出现在伪分布式模式下,但不是在独立模式下,我希望能对如何调试这个问题有一些想法 我的一些映射程序任务返回代码143。我想在System.exit()上放置一个断点,看看是谁在调用它,为什么,但我必须让调试器在该映射器上运行 通过修改bin/hadoop脚本并远程连接到localhost:5000,我可以在调试器中启动任务跟踪器:Java 使用Eclipse调试多个hadoop JVM,java,eclipse,hadoop,multiprocessing,Java,Eclipse,Hadoop,Multiprocessing,我有一个问题出现在伪分布式模式下,但不是在独立模式下,我希望能对如何调试这个问题有一些想法 我的一些映射程序任务返回代码143。我想在System.exit()上放置一个断点,看看是谁在调用它,为什么,但我必须让调试器在该映射器上运行 通过修改bin/hadoop脚本并远程连接到localhost:5000,我可以在调试器中启动任务跟踪器: ... elif [ "$COMMAND" = "tasktracker" ] ; then CLASS=org.apache.hadoop.mapre
...
elif [ "$COMMAND" = "tasktracker" ] ; then
CLASS=org.apache.hadoop.mapred.TaskTracker
HADOOP_OPTS="$HADOOP_OPTS $HADOOP_TASKTRACKER_OPTS"
# TBMark!
HADOOP_OPTS="$HADOOP_OPTS -Xdebug -Xrunjdwp:transport=dt_socket,address=5000,server=y,suspend=n"
…通过将其添加到我的conf/mapred-site.xml中并远程连接到localhost:5001:
<property>
<name>mapred.map.child.java.opts</name>
<value>-Xdebug -Xrunjdwp:transport=dt_socket,address=5001,server=y,suspend=y</value>
</property>
mapred.map.child.java.opts
-Xdebug-Xrunjdwp:transport=dt_套接字,地址=5001,服务器=y,挂起=y
我的问题是失败是随机发生的,而不是在第一个映射器上
脑海中浮现的不令人满意的想法包括:
关于如何让我的坏主意在上面发挥作用,有什么建议或想法吗?您可以尝试使用重新运行失败的映射任务 如果它再次失败,您应该能够添加调试选项