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
  • 【Eclipse远程调试Spark】配置ip和port

    Eclipse远程调试Spark
    文章图片
    这里写图片描述

    推荐阅读