如何在从 IntelliJ IDEA 打开调试的情况下执行 spark-submit 并附加到它?

How to execute spark-submit with debugging turned on from IntelliJ IDEA and attach to it?

我有一个 MapR 节点集群,我有一个安装了 CentOs 和 MapR 客户端的虚拟机虚拟机。我使用 IntelliJ 开发 Spark/Scala 代码。 我可以在我的 MapR 客户端上执行这一行,以便从 IntelliJ 进行调试(远程调试)

spark-submit --driver-java-options -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005 --master local[2] --class MyClass myproject-1.0-SNAPSHOT.jar

因此,在执行 spark-submit 之后,我需要单击 IntelliJ 中的调试按钮来启动所有内容。 每次我想调试我的应用程序时,我都想避免在我的 Mapr 客户端 VM 上执行上面的行。所以我想知道是否可以从 IntelliJ

管理所有调试

你有什么想法吗?谢谢

So I wonder if it is possible to manage all the debug from IntelliJ

我很难相信。

您必须使用正确的调试选项启动 spark-submit,并使用带有 Remote[=25= 的 IntelliJ IDEA 的 Debug 功能附加到该进程]调试配置。

我使用以下命令启动 spark-shell 并打开调试选项的 JVM(全部在一行中)。

SPARK_SUBMIT_OPTS="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 \
  ./bin/spark-shell

顺便说一句,使用 --driver-java-options 为驱动程序的 JVM 设置调试选项是一个非常好的主意。谢谢!