记录一次远程debug hadoop jobtracker

hadoop CDH3u2
  • 准备好eclipse并创建一个hadoop源码项目,将源码添加倒src path
  • stop jobtracker(/etc/init.d/hadoop-0.20-jobtracker stop)
  • vi bin/hadoop(添加红色部分)

...

elif [ "$COMMAND" = "jobtracker" ] ; then

  CLASS=org.apache.hadoop.mapred.JobTracker

  HADOOP_OPTS="$HADOOP_OPTS $HADOOP_JOBTRACKER_OPTS -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=

8899"

...

  • 启动jobtracker(/etc/init.d/hadoop-0.20-jobtracker start),此时会打印"Listening for transport dt_socket at address: 8899",但是jobtracker尚未启动。
  • 右键hadoop src项目,右键“Debug As”,选择“Debug Configurations”,选择“Remote Java Application”,添加一个新的测试,输入远程host ip和监听端口,上例为8899,然后点击“Debug”按钮,jobtracker此时启动。
  • 在hadoop 源码中添加断点,运行一个job,程序会自动暂停到断点位置,剩下的事情交给你了。

调试mapreduce见我另一篇文章《 远程Hadoop调试——mapreduce函数调试篇

-- heipark


猜你喜欢

转载自heipark.iteye.com/blog/1393553
今日推荐