远程调试Hadoop

如何远程调试Hadoop

在调研JobTracker等异常问题时常常须要远程debug以实现单步跟踪。相对于打印日志,远程调试更方面更快捷,信息也更全面。这里列出远程调试的基本步骤。 java

一、配置jvm选项启用远程debug eclipse

Hadoop的全部deamon启动都是bin/hadoop脚本实现的,该脚本最后一行会执行java命令来启动JVM进程。所以要启用远程debug,只须要修改该脚本最后一行便可。 jvm

修改前最后一行以下: socket

exec "$JAVA" $HADOOP_OPTS -classpath "$CLASSPATH" $CLASS "$@" oop

修改以后最后一行以下: 字体

exec "$JAVA" -Xdebug -Xrunjdwp:transport=dt_socket,address=50010,server=y,suspend=n $HADOOP_OPTS -classpath "$CLASSPATH" $CLASS "$@" spa

其中加粗字体部分为新增的jvm参数。 debug

这些参数的含义是在端口50070启动一个server socket并经过Java Debug Wire Protocol (jdwp)传递调试信息。suspend=n表示客户端(eclipse)没有连上时不须要挂起,即没有开始调试时该进程照常运行。 调试

须要注意的是这里的端口号必定要是空闲的且对外开放的。一般生产机器只开通了少许端口。 日志


二、配置eclipse来远程调试

a、启动eclipse

b、点击菜单的 Go to Run -> Debug Configurations


c、在配置界面上找到Remote Java Application而后右键新建一个


d、配置远程应用的连接信息

这里主要是填好主机名及端口号。


f、最后一步点击 Apply保持配置而后点击Debug便可开始远程调试了

相关文章
相关标签/搜索