Eclipse同理。配置项做简单说明:
如果同时调试多个节点,注意设置不同的端口多线程debug
Hadoop中有大量优秀的并发设计,多线程debug必不可少。IDEA设置的断点默认只能监控前台线程(一般是主线程),后台线程遇到断点都会忽略,无法调试多线程代码。实际上,IDEA、Eclipse等本身支持多线程debug,开启Thread模式即可。
重新启动namenode与datanode,连接上datanode。沿着DataNode.secureMain()找到createDataNode->runDatanodeDaemon:
图标为“红点+对勾”的是正常debug的线程,其他图标只有“红点”的是后台停在断点上的线程。切换后,IDEA会自动到切换对应线程的虚拟机栈:
有连接发送过来的时候,dataXceiverServer线程会恢复RUNNING状态,并在后台默默执行到下一断点,然后等待用户切换线程进行debug。搞定。

| 欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |