1.服务端开启调试并启动服务,本文以调试ResourceManager为例:
export YARN_RESOURCEMANAGER_OPTS="-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=8000"
start-all.sh
注意输出信息,显示已经监听8000端口,如下图:
2.客户端运行Eclipse,连接服务端联调
a.打开Eclipse的Hadoop源码项目,找到org.apache.hadoop.yarn.event.AsyncDispatcher,在处理事件处打断点,如下图所示:
b.找到org.apache.hadoop.yarn.server.resourcemanager.ResourceManager,右键选择Debug As --> Debug Configurations...,按照下图进行配置:
c.点击Debug按钮,开始调试,程序会停在断点处,点击F6跳过,可以查看到具体的事件类型信息,如下图所示:
d.通过在关键位置加断点,并结合单步、跳过等调试手段,可以清晰地分析Hadoop的运行过程,给二次开发带来了便利。