使用 VsCode 远程调试 Scala Spark 作业

Aed*_*den 7 scala apache-spark visual-studio-code vscode-debugger scala-metals

我希望能够使用 VsCode 远程调试在 Docker 容器中运行的 Scala 编写的 Spark 作业。这就是我到目前为止所拥有的

  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 
Run Code Online (Sandbox Code Playgroud)

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

  1. 我尝试从 VsCode 启动调试器,但收到错误。
Debugger failed to attach: handshake failed - received >Content-Length< - expected >JDWP-Handshake<
Run Code Online (Sandbox Code Playgroud)

代码的完整详细信息位于https://github.com/aedenj/spark-job-starter/tree/vscode-debug-setup。感谢您的指导。