Eclipse远程调试spark-submit

时间:2017-10-04 10:49:20

标签: apache-spark spark-java

我想对使用Windows中的命令提示符提交给Spark的应用程序进行远程调试。你能帮我吗?

我可以提供任何Spark启动远程调试端口。

2 个答案:

答案 0 :(得分:7)

您始终可以Remote Debugging使用SparkJava/scala进行dataset。如果您想使用localmode检查小Java Debugger,那么您可以使用步调试器。查看Spark以及它是如何工作的。

Java step debugger

如果您想在Remotemode中使用spark-submit特定的调试,那么请查看此链接,它是一步一步的非常好的示例。

spark-remote-debugging

要调试驱动程序,您可以将以下内容添加到--driver-java-options -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005 命令中。然后将远程调试器设置为连接到启动驱动程序的节点。

port

您可以根据需要自定义debugger。 在这种情况下,在侦听模式下启动调试器,然后启动spark程序并等待执行程序附加到调试器。将执行程序的数量设置为1或多个执行程序将全部尝试连接到select id, firstname, surname from ( select id, firstname, surname, min(length(firstname)) over (partition by id, surname) as min_length, max(length(firstname)) over (partition by id, surname) as max_length, count(distinct substr(firstname, 1, 1)) over (partition by id, surname) as count_distinct_initials from table1 ) where min_length = 1 and max_length > 1 and count_distinct_initials = 1 order by id, surname, firstname; ,这可能会导致问题。查看上面的示例以获取更多详细信息。

如果您使用的是jetbrains,则可以使用此示例Spark remote debugging

答案 1 :(得分:0)

步骤:

  1. 导出选项,下面的地址是从IDE(Intellij或Eclipse)监听的端口

export SPARK_SUBMIT_OPTS = -agentlib:jdwp = transport = dt_socket,server = y,suspend = y,address = 8086

  1. 运行spark应用程序

    spark-submit --class prueba.SampleRDDTest pruebaTests-1.0-SNAPSHOT.jar

    侦听地址为8086的运输dt_socket

  2. 在IDE中,监听运行spark应用程序的机器(我使用了docker机器)

    JVM的参数:-agentlib:jdwp = transport = dt_socket,server = y,suspend = n,address = 8086 主机:192.168.99.100端口:8086