eclipse调试hadoop2.2.0源码笔记
在hadoop1.x版本时使用的是在Windows下编译Eclipse插件,远程调试集群。换成2.2.0,没有eclipse-plugin文件。
hadoop2.2.0“远程调试集群”,是指调试NameNode/DataNode,JobTracker/Tasktracker,ResourceManager/NodeManager等服务进程,可以在hadoop-env.sh(对于NN/DN或者JT/TT)或者yarn-env.sh(对于RM或NM)中,针对其中的XXX_OPTS,加入类似“-agentlib:jdwp=transport=dt_socket,address=9113,server=y,suspend=n”这样的配置。意味着进程启动后,会通过Java远程调用协议(jdwp)监听9113端口(或者配成其它的)。
这之后,可以通过
1. jdb -attach hostname:port
2. eclipse中打开对应项目(不一定需要编译通过),在run->debug configurations->Remote Java Application中定义远端模块的ip及监听的jdwp端口。
即可进行远程调试,支持所有单步、断点设置、变量查看等功能。
坚持不懈