[原]Eclipse远程调试Spark
- - Soul Joy's Home修改${spark_home}/bin/spark-class文件:. -Xdebug 启用调试特性. -Xrunjdwp 启用JDWP实现,包含若干子选项:. transport=dt_socket JPDA front-end和back-end之间的传输方法. dt_socket表示使用套接字传输.
修改${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 "$@"
参数说明:
-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不会暂停等待。
用 eclipse
将项目 export
出 jar
包,传到集群上使用 spark-submit
提交 Application
,可以看到在等待:
注意,传到集群上的代码要和本地一样!