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"位置的断点你为什么没有命中呀,昏淡~~