1

我有一个 MapR 节点集群,我有一个安装了 CentO 和 MapR 客户端的虚拟盒 vm。我使用 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 管理所有调试

你有什么主意吗?谢谢

4

1 回答 1

2

所以我想知道是否可以从 IntelliJ 管理所有调试

我几乎不相信。

您必须从spark-submit正确的调试选项开始,并使用带有远程调试配置的 IntelliJ IDEA 的调试功能附加到该进程。

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

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

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

于 2017-07-14T01:54:41.567 回答