Spark1.4远程调试

1)首先,我们是在使用spark-submit提交作业时,使用

--driver-java-options ”-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8888“

参数来指明本作业使用远程调试的方式运行,也就是打开JVM的调试特性,实例如下:

回车确定提交作业之后,并没有像之前直接运行程序,而是出现一个提示语句“Listening for transport dt_socket at address: 8888”,如下所示:

2)程序在等待远程调试,我们使用IDEA2016的远程调试此程序,接下来就是使用IDEA配置远程调试,过程如下:

a.Run->Edit Configuration 

点击“+”添加一个Remote

b.

点击“+”之后,弹出上述页面,点击“Remote”就成功创建了一个Remote,如下所示。

c.

修改上图中红色箭头指示的三个地方,一般只需要修改“Name”和“Port”,因为我们就是在本机远程调试Spark程序,所以不需要修改“Host”。“Port”就是8888

--driver-java-options ”-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8888

配置后的页面如下图所示:

3)配置完成后,点击“F9”,选择“Spark_Remote_Debug”,就将IDEA与集群上Spark程序远程连接起来了,如下图所示,命中断点:

这里需要注意两点

1.在“47”位置设置断点时,会跳出如下提示(快捷键:ctrl+F8):

 

选择“All”才会命中断点,具体原因还不清楚。

2."67"位置的断点你为什么没有命中呀,昏淡~~

参考0

参考1

原文地址:https://www.cnblogs.com/lz3018/p/5438612.html