gpt4 book ai didi

apache-spark - 如何在 Dataproc 上调试 Spark 作业?

转载 作者:行者123 更新时间:2023-12-03 19:08:00 24 4
gpt4 key购买 nike

我有一个在 Dataproc 集群上运行的 Spark 作业。如何配置环境以使用 IDE 在本地计算机上对其进行调试?

最佳答案

本教程假定以下内容:

  • 您知道如何通过 API 调用、云 shell 命令或 Web UI
  • 创建 GCP Dataproc 集群
  • 您知道如何提交 Spark 作业
  • 您有权启 Action 业、创建集群和使用 Compute Engine 实例

  • 经过一些尝试,我发现了如何在您的本地计算机上调试在集群上运行的 DataProc Spark 作业。
    您可能知道,您可以通过使用 Web UI、向 DataProc API 发送请求或使用 gcloud dataproc jobs submit spark 来提交 Spark 作业。命令。无论哪种方式,首先将以下键值对添加到 the properties field in the SparkJob : spark.driver.extraJavaOptions=-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=REMOTE_PORT , 其中 REMOTE_PORT是驱动程序将监听的工作程序上的端口。
    您的集群可能位于专用网络上,您需要创建一个到 REMOTE_PORT 的 SSH 隧道。如果不是这种情况,那么您很幸运,您只需要使用公共(public) IP 和 IDE 上指定的 REMOTE_PORT 连接到工作人员。
    使用 IntelliJ 会是这样的:
    Debugging on public IP cluster ,
    其中worker-ip 是正在监听的worker(这次我使用9094 作为端口)。经过几次尝试,我意识到它始终是 worker 编号 0,但是您可以连接到它并使用 netstat -tulnp | grep REMOTE_PORT 检查是否有进程正在运行
    如果由于某种原因您的集群没有公共(public) IP,则需要设置从本地计算机到工作人员的 SSH 隧道。指定 ZONE 和 PROJECT 后,创建一个到 REMOTE_PORT 的隧道:
    gcloud compute ssh CLUSTER_NAME-w-0  --project=$PROJECT --zone=$ZONE  --  -4 -N  -L LOCAL_PORT:CLUSTER_NAME-w-0:REMOTE_PORT
    然后在 IDE 上设置调试配置,指向 host=localhost/127.0.0.1port=LOCAL_PORT

    关于apache-spark - 如何在 Dataproc 上调试 Spark 作业?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63052302/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com