hadoop下远程调试方法

JPDA 简介
Sun Microsystem 的 Java Platform Debugger Architecture (JPDA) 技术是一个多层架构,使您能够在各种环境中轻松调试 Java 应用程序。JPDA 由两个接口(分别是 JVM Tool Interface 和 JDI)、一个协议(Java Debug Wire Protocol)和两个用于合并它们的软件组件(后端和前端)组成。它的设计目的是让调试人员在任何环境中都可以进行调试。
更详细的介绍,您可以参考使用 Eclipse 远程调试 Java 应用程序
JDWP 设置
JVM本身就支持远程调试,Eclipse也支持JDWP,只需要在各模块的JVM启动时加载以下参数:

dt_socket表示使用套接字传输。
address=8000
JVM在8000端口上监听请求,这个设定为一个不冲突的端口即可。
server=y
y表示启动的JVM是被调试者。如果为n,则表示启动的JVM是调试器。
suspend=y
y表示启动的JVM会暂停等待,直到调试器连接上才继续执行。suspend=n,则JVM不会暂停等待。

需要在$HADOOP_HOME/etc/hadoop/hadoop-env.sh文件的最后添加你想debug的进程

#远程调试namenode
export HADOOP_NAMENODE_OPTS="-agentlib:jdwp=transport=dt_socket,address=8888,server=y,suspend=y"
#远程调试datanode
export HADOOP_DATANODE_OPTS="-agentlib:jdwp=transport=dt_socket,address=9888,server=y,suspend=y"

#远程调试RM
export YARN_RESOURCEMANAGER_OPTS="-agentlib:jdwp=transport=dt_socket,address=10888,server=y,suspend=y"

#远程调试NM
export YARN_NODEMANAGER_OPTS="-agentlib:jdwp=transport=dt_socket,address=10888,server=y,suspend=y"

例:
如果要调试datanode ,使用hadoop-daemon.sh start datanode
如果要调试namenode,使用hadoop-daemon.sh start namenode
然后在eclipse中关联源码,并启用远程调试模式,启动某个类的main()函数。

时间: 2024-11-05 04:48:41

hadoop下远程调试方法的相关文章

Windowns下远程调试Linux下程序(MinGW+GDB+SlickEdit+GDBServer)(有待完善)

前言: 本文思路来自嵌入式开发,Linux下远程调试开发板.废话不多说,开始吧!! Windown端: 一.下载和解压MiniGW, 从官网下载MiniGW,解压.(本例放在C:\) 二.下载和解压GDB:下载地址为:http://ftp.gnu.org/gnu/gdb/(本文以gdb-7.2为例,放在C:\) 三.在Windowns下编译GDB 运行C:\MinGW\msys\1.0\msys.bat $ cd c: $ cd gdb-7.2 $./configure --target=i68

Spark1.6 Idea下远程调试

使用的开发工具:scala2.10.4.Idea16.JDK8 1.导入依赖的包和源码 在下载Spark中到的导入spark的相关依赖了包和其源码.zip,相关源码的下载地址:https://github.com/apache/spark/tree/v1.6.0 地址最后面是对应的版本号,下载源码便于看注释 2.使用官方求Pi的例子 [java] view plain copy import org.apache.spark.{SparkConf, SparkContext} object Fi

Firefox下javascript调试方法

前面博文谈了一下IE浏览器下javascript的调试方法,今天没事干就把火狐浏览器(Firefox)下的javascript调试方法也看了一下,记录在此,希望对大家有所帮助. 我们这次使用的代码页面为document获取对象博文中的按name属性获取对象的代码. <html> <head> <title>getElementsByName</title> </head> <body> <form id="form1&

tomcat远程调试方法

同事部署的应用服务有些问题,让我帮着远程调试一下,记录一下调试方法. 1.服务的tomcat配置远程连接接口 tomcat所在节点的catalina.sh文件中添加: CATALINA_OPTS="-Xdebug  -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n" 2.重启tomcat服务 3.eclipse连接远程服务 3.1 Run->debug Configurations->Remote j

《转》VS2010进行远程调试方法总结

---恢复内容开始--- 原文地址:http://blog.sina.com.cn/s/blog_a459dcf5010153o7.html 假设现在有A.B两台PC机. VS2010安装在A机器上,也就是说A机器是开发使用的机器. B机器是程序运行部署使用的机器,其IP为:192.168.1.129(局域网IP) 说明:如果B机器是外网IP下面方法照样适合,不过在使用的适合可能会出现无法附加到进程的错误. 如果出现无法附加到进程的错误.无法连接到设备.请按照步骤13进行设置. 1.根据vs20

eclipse环境下tomcat远程调试方法

前提:Windows环境tomcat是以catalina.bat方式而非Windows服务形式启动(两者所使用的JAVA配置及JVM参数会有差异). 服务器段设置 方法1:修改CATALINA_OPTS 修改 catalina.bat文件,添加:Set  "CATALINA_OPTS=-Xdebug  -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n" 参数说明: -Xdebug                 

Intellij IDEA下远程调试hadoop

最近在开发新的MapReduce程序时,经常要打jar包上传到服务器,然后运行hadoop jar      balaba...... 看到网上都是在Eclipse下调试hadoop集群中MapReduce程序,而且描述的都是模模糊糊,有些根本就是错的,实在不忍心直视,其中有一篇关于idea下调试hadoop集群程序的博客,被疯狂转载,可是仔细看看,根本没用,因为他的平台是Linux. 使用Intellij IDEA+maven的开发hadoop的同学,如果想在本地直接运行,不去上传jar包,可

JPDA 远程调试方法记录

一.JPDA概念 JPDA(Java platform debugger architecture)是java平台调试架构的简称,由java虚拟机后端和调试平台前端组成. 1.java虚拟机提供了java调试功能: 2.调试平台通过调试交互协议向java虚拟机请求服务,以对在虚拟机中运行的程序进行调试. 二.idea 配置方法 1.启动tomcat 的jpda支持 启动tomcat的时候,不能只用默认启动方法 ./catalina.sh start 应该替换为 ./catalina.sh jpd

Linux下Java调试方法

1.如何开启一个Java进程的调试选项? 替换原有java程序: mv /usr/bin/java /usr/bin/java_true 在/usr/bin/目录下生成一个java文件,其内容如下: java_true -Xdebug -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=y [email protected] 重新启动希望调试的程序,就可以看到调试参数已经添加上去了. 2.如何对其进行调试? 请参考如下链接: h