gpt4 book ai didi

apache-spark - Spark Kubernetes 是否支持 --py-files 参数?

转载 作者:行者123 更新时间:2023-12-02 12:36:12 25 4
gpt4 key购买 nike

我正在尝试使用 Kubernetes 运行 PySpark 作业。主脚本和 py 文件都托管在 Google Cloud 存储上。
如果我使用独立资源管理器启 Action 业:

spark-submit \
--master local \
--deploy-mode client \
--repositories "http://central.maven.org/maven2/" \
--packages "org.postgresql:postgresql:42.2.2" \
--py-files https://storage.googleapis.com/foo/some_dependencies.zip \
https://storage.googleapis.com/foo/script.py some args

它工作正常。
但是,如果我使用 Kubernetes 尝试相同的操作:
spark-submit \
--master k8s://https://xx.xx.xx.xx \
--deploy-mode cluster \
--conf spark.kubernetes.container.image=gcr.io/my-spark-image \
--repositories "http://central.maven.org/maven2/" \
--packages "org.postgresql:postgresql:42.2.2" \
--py-files https://storage.googleapis.com/foo/some_dependencies.zip \
https://storage.googleapis.com/foo/script.py some args

然后主脚本运行,但在依赖文件中找不到模块。
我知道我可以复制 Docker 镜像中的所有文件,但我更喜欢这样做。

这可能吗?我错过了什么吗?

谢谢

最佳答案

所以 k8s 调度器背后的想法是把所有东西都放在容器中。
因此,您的 CI/CD 将构建一个以 Apache Spark kubernetes Docker 为基础的 Dockerfile,然后在 docker 镜像中包含您的 python 存储库和驱动程序 python 脚本的压缩副本。像这样:

$ bin/spark-submit \
--master k8s://<k8s-apiserver-host>:<k8s-apiserver-port> \
--deploy-mode cluster \
--py-files local:///path/to/repo/in/container/pyspark-repo.zip \
--conf spark.kubernetes.container.image=pyspark-repo-docker-image:1.0.0 \
local:///path/to/repo/in/container/pyspark-driver.py
您的 spark.kubernetes.container.image应该是您的完整应用程序
  • --py-files 的 repo 的 zip (例如:repo.zip)
  • 您的 requirements.txt安装到容器的 python 版本(在你的 repo 的 Dockerfile 中完成)
  • 驱动程序脚本(例如:driver.py)
  • 关于apache-spark - Spark Kubernetes 是否支持 --py-files 参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55637497/

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