Spark on k8s: 调试Executor Pod的方法
2019-09-25 本文已影响0人
Kent_Yao
相关文章
1 . Spark on k8s: 调试客户端spark-submit进程
前两篇博客已经将 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,
executor
查看其是否处于监听状态,
监听
把端口转发映射至本地,
port forward
在 executor 端代码逻辑打上合适的断点,启动调试,
breakpoint
总结
Driver Pod / Executor Pod 调试的原理是一致的,唯一的区别就是不同参数的设置spark.driver/executor.extraJavaOptions
。
另外,当然如果你能打开三个IDE,就可以同时调试 Client 、Driver 及 Executor,那就不亦说乎了。