Spark on k8s: 调试Executor Pod的方法

相关文章

1 . Spark on k8s: 调试客户端spark-submit进程

  1. Spark on k8s: 调试Driver Pod的方法

前两篇博客已经将 Spark on k8s 模块中涉及到的 Client 以及 Driver Pod 的具体调试方法描述了一下,最后只剩下 Executor Pod 了,当然其调试的原理和 Driver Pod 别无二致,但为了保持这一系列的完整性,还是把这篇博客水水完。

前置条件

学会 Spark on k8s: 调试Driver Pod的方法

开始调试

首先在 spark 启动命令中设置spark.executor.extraJavaOptions, 如下

--conf spark.executor.extraJavaOptions=-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=50014

找到对应 Spark 应用的executor,


Spark on k8s: 调试Executor Pod的方法_第1张图片
executor

查看其是否处于监听状态,


Spark on k8s: 调试Executor Pod的方法_第2张图片
监听

把端口转发映射至本地,


port forward

在 executor 端代码逻辑打上合适的断点,启动调试,


Spark on k8s: 调试Executor Pod的方法_第3张图片
breakpoint

总结

Driver Pod / Executor Pod 调试的原理是一致的,唯一的区别就是不同参数的设置spark.driver/executor.extraJavaOptions
另外,当然如果你能打开三个IDE,就可以同时调试 Client 、Driver 及 Executor,那就不亦说乎了。

你可能感兴趣的:(Spark on k8s: 调试Executor Pod的方法)