首页 > 解决方案 > 使用 VsCode 远程调试 Scala Spark 作业

问题描述

我希望能够远程调试用 Scala 编写的 Spark 作业,该作业在带有 VsCode 的 docker 容器中运行。这是我目前所拥有的

  1. 安装了scala-metals v0.8 的VsCode
  2. 调试启动配置
  3. 我用docker-compose up启动了一个 spark 集群
  4. 我使用以下命令向上面启动的集群提交了一个 spark 作业
docker exec -it -e SPARK_SUBMIT_OPTS=-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=4000 -w /spark spark-job-starter_master_1 bin/spark-submit --class example.StarterSparkJob /build/example.jar 

这样做后,我看到了输出Listening for transport dt_socket at address: 4000

  1. 我尝试从 VsCode 启动调试器,但出现错误。
Debugger failed to attach: handshake failed - received >Content-Length< - expected >JDWP-Handshake<

代码的完整细节在这里https://github.com/aedenj/spark-job-starter/tree/vscode-debug-setup。感谢您的指导。

标签: scalaapache-sparkvisual-studio-codevscode-debuggerscala-metals

解决方案


推荐阅读