我有一个MapR节点集群,我有一个虚拟盒vm,安装了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的所有调试
你有什么主意吗?谢谢
所以我想知道是否可以管理IntelliJ的所有调试
我几乎不相信。
您必须使用正确的调试选项启动spark-submit
,并使用IntelliJ IDEA的Debug功能和远程调试配置使用attach连接到该进程。
我使用以下命令在启用调试选项的情况下使用JVM启动spark-shell
(全部在一行上)。
SPARK_SUBMIT_OPTS="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 \
./bin/spark-shell
BTW使用--driver-java-options
为驱动程序的JVM设置调试选项是一个非常巧妙的想法。谢谢!