从 Docker 中运行的 Airflow 将 Spark 作业提交到本地运行的 Spark 独立集群

问题描述 投票:0回答:1

我在 Docker 容器中运行 Airflow 2.3.4,并在本地计算机中运行 Spark 3.3.0 独立集群。我正在尝试使用 SparkSubmitOperator 将 Spark 作业提交到本地 Spark 集群,但作业无法连接到 Spark master,并出现错误“连接被拒绝”。

在 Airflow 连接 UI 中,我已将主机添加为 spark://host.docker.internal:7077 并带有额外选项

{"deploy-mode" : "client" }
,并在 docker-compose 文件中添加了以下内容以指向我的本地主机 IP:

  extra_hosts:
    - "host.docker.internal:host-gateway"

我已在 Airflow 容器中安装了 Spark 二进制文件、Java、Airflow 提供程序包和 PySpark 3.3.0,并在这些容器的 PATH 变量中设置了 SPARK_HOME 和 JAVA_HOME。

我尝试从 Docker 容器内部 ping Spark master,但即使我能够

ping host.docker.internal
telnet host.docker.internal 7077
也给我“连接被拒绝”。

docker pyspark airflow spark-submit
1个回答
0
投票

我知道这不是答案,但我无法发表评论,所以我别无选择。

问题解决了吗?我也有同样的错误,并且一个多星期都无法修复。

© www.soinside.com 2019 - 2024. All rights reserved.