构建完成Hadoop项目后,接下来就应该跟踪Hadoop的运行情况,比如在命令行执行hadoop namenode–format时执行了Hadoop的那些代码。当然也可以直接通过阅读源代码的方式来做到这一点,但跟踪代码的执行情况更加直观,更容易理解。
动手配置Eclipse调试Hadoop之前,先大概学习一下JPDA(Java Platform Debugger Architecture,Java平台调试结构)。JPDA是一个多层的调试架构,使工具开发者可以容易地创建跨平台的,跨VM实现和JDK版本的调试器。JPDA包含三层:
- JVM TI:Java VM ToolInterface,定义了VM提供的调试服务。
- JDWP:Java DebugWire Protocol,定义了调试器进程和debuggee之间的通讯。Debuggee是正在被调试的进程,包含正在被调试的应用程序,运行该应用 程序的VM和后端的调试器。
- JDI:Java DebugInterface,定义了高层次的Java接口,该接口允许工具开发者容易地编写远程调试器应用程序。
JPDA的结构图如下所示:

本文介绍如何利用Eclipse和JPDA远程调试Hadoop。首先简要概述JPDA的三层架构,包括JVM TI、JDWP和JDI。接着详细说明如何通过调整Hadoop脚本启用调试器,并在Eclipse中配置远程Java应用调试,通过指定主机名、端口与Hadoop进程建立连接。最后展示了调试NameNode的示例,强调DataNode和MapReduce作业的调试类似,但有待深入探讨。
订阅专栏 解锁全文
5559





