如何在eclipse上调试hadoop的笔记
步骤如下:
1、修改mapred-site.xml文件,添加如下配置:
<property>
<name>mapred.child.java.opts</name>
<value>-agentlib:jdwp=transport=dt_socket,address=8883,server=y,suspend=y</value>
</property>
关闭所有的tasktracker,只保留上面配置的一台需要调试的tasktracker
2、启动Mapreduce job
右键hadoop src项目,右键“Debug As”,选择“Debug Configurations”,选择“Remote Java Application”,添加一个新的测试,输入远程host ip和监听端口,上例为8883,然后点击“Debug”按钮。此时应该连接到远程tasktracker child进程,并进入断点位置,可以单步调试了。
3、Eclipse 连接套接字模式下的 VM 调用示例
java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,address="8000" -jar test.jar
使用远程启动配置启动 Eclipse,并指定远程应用程序的目标 VM 地址。
4、单击 Run > Debug Configurations,然后在 Eclipse 菜单中双击 Remote Java Application。从最新创建的启动配置中为目标应用程序指定 IP 和端口。为了在同一台机器上运行远程应用程序,仅需将主机 IP 指定为 localhost 或 127.0.0.1。
2015-12-15
修改mapred-site.xml文件,添加如下配置:
<property>
<name>mapred.child.java.opts</name>
<value>-agentlib:jdwp=transport=dt_socket,address=8883,server=y,suspend=y</value>
</property>
关闭所有的tasktracker,只保留上面配置的一台需要调试的tasktracker
启动Mapreduce job
右键hadoop src项目,右键“Debug As”,选择“Debug Configurations”,选择“Remote Java Application”,添加一个新的测试,输入远程host ip和监听端口,上例为8883,然后点击“Debug”按钮。此时应该连接到远程tasktracker child进程,并进入断点位置,可以单步调试了。
Eclipse 连接套接字模式下的 VM 调用示例
java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,address="8000" -jar test.jar
使用远程启动配置启动 Eclipse,并指定远程应用程序的目标 VM 地址。为此,单击 Run > Debug Configurations,然后在 Eclipse 菜单中双击 Remote Java Application。从最新创建的启动配置中为目标应用程序指定 IP 和端口。为了在同一台机器上运行远程应用程序,仅需将主机 IP 指定为 localhost 或 127.0.0.1。