【发布时间】:2015-10-17 00:05:57
【问题描述】:
我正在运行 this 之类的 hadoop 作业:
bin/hadoop jar /usr/joe/wordcount.jar org.myorg.WordCount /usr/joe/wordcount/input /usr/joe/wordcount/output
我的问题:如何使用jdb 进行调试?我不需要远程调试。该作业正在我要调试的同一台机器上运行。
【问题讨论】:
我正在运行 this 之类的 hadoop 作业:
bin/hadoop jar /usr/joe/wordcount.jar org.myorg.WordCount /usr/joe/wordcount/input /usr/joe/wordcount/output
我的问题:如何使用jdb 进行调试?我不需要远程调试。该作业正在我要调试的同一台机器上运行。
【问题讨论】:
您可以随时将 jdb 连接到正在运行的进程。
在调试模式下运行 Java 应用程序的简单方法是使用调试参数运行它:
"-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=32887"
应用程序启动后,您始终可以使用 jps 查找它并使用 jdb 连接到进程
您还可以导出 _JAVA_OPTIONS 变量,这样可以让所有 JVM 使用这些设置。这样,您启动的任何 JVM 都将始终以调试模式运行。但请记住,只有第一个能够侦听 TCP/IP 端口。
【讨论】: