Osheep

时光不回头,当下最重要。

Eclipse远程调试Spark

修改配置文件

修改${spark_home}/bin/spark-class文件:

"$RUNNER" -Xmx128m -cp "$LAUNCH_CLASSPATH" org.apache.spark.launcher.Main -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8888 "$@"
《Eclipse远程调试Spark》

这里写图片描述

参数说明:

  • -Xdebug 启用调试特性

  • -Xrunjdwp 启用JDWP实现,包含若干子选项:

  • transport=dt_socket JPDA front-end和back-end之间的传输方法。dt_socket表示使用套接字传输。

  • address=8888 JVM在8888端口上监听请求,这个设定为一个不冲突的端口即可。

  • server=y
    y表示启动的JVM是被调试者。如果为n,则表示启动的JVM是调试器。

  • suspend=y y表示启动的JVM会暂停等待,直到调试器连接上才继续执行。suspend=n,则JVM不会暂停等待。

启动Spark Application

eclipse将项目exportjar包,传到集群上使用spark-submit提交Application,可以看到在等待:

《Eclipse远程调试Spark》

这里写图片描述

注意,传到集群上的代码要和本地一样!

在Eclipse设置远程调试的ip和port

  • Debug as
  • Debug Configurations
  • Remote Java Application
  • 配置ip和port
    《Eclipse远程调试Spark》

    这里写图片描述
点赞