使用bitnami spark docker镜像向kubernetes集群提交spark作业

6pp0gazn  于 2023-06-05  发布在  Kubernetes
关注(0)|答案(1)|浏览(433)

我有一个minikube的本地设置,我正在尝试使用spark-submit向本地Kubernetes提交作业。这里的想法是使用我的本地机器的spark-submit提交给kubernetes master,它将处理创建一个spark集群并在工作完成时将其删除。
我正在使用图像bitnami/spark:3.2.1和以下命令:

./bin/spark-submit --master k8s://https://127.0.0.1:52388 \
--deploy-mode cluster \
--conf spark.executor.instances=1 \
--conf spark.kubernetes.authenticate.driver.serviceAccountName=spark \
--conf spark.kubernetes.container.image=bitnami/spark:3.2.1 \
--class org.apache.spark.examples.JavaSparkPi \
--name spark-pi \
local:///opt/bitnami/spark/examples/jars/spark-examples_2.12-3.2.1.jar

这似乎不起作用,spark驱动程序中的日志是:

[...]
Caused by: java.io.IOException: Failed to connect to spark-master:7077
[...]

和/或

[...]
Caused by: java.net.UnknownHostException: spark-master
[...]

如果我使用docker-image-tool.sh来构建一个带有python绑定的自定义spark docker镜像并使用它,它可以完美地工作。bitnami的图像有什么特别之处,为什么它没有识别出这个例子中的主是kubernetes?
我也尝试使用选项conf spark.kubernetes.driverEnv.SPARK_MASTER_URL=spark://127.0.0.1:7077提交时,但错误是类似于上述.

h9vpoimq

h9vpoimq1#

我最近在Got "java.net.UnknownHostException: spark-master" in cluster mode上遇到了类似的问题

./bin/spark-submit --master k8s://https://127.0.0.1:52388 \
  --deploy-mode cluster \
  --conf spark.kubernetes.driverEnv.SPARK_MASTER_URL=spark://your-spark-master-svc:7077
  --conf spark.executor.instances=1 \
  --conf spark.kubernetes.authenticate.driver.serviceAccountName=spark \
  --conf spark.kubernetes.container.image=bitnami/spark:3.2.1 \
  --class org.apache.spark.examples.JavaSparkPi \
  --name spark-pi \
  local:///opt/bitnami/spark/examples/jars/spark-examples_2.12-3.2.1.jar

而不是添加

--conf spark.kubernetes.driverEnv.SPARK_MASTER_URL=spark://127.0.0.1:7077

添加此

--conf spark.kubernetes.driverEnv.SPARK_MASTER_URL=spark://your-spark-master-svc:7077

可能会有帮助。

参考

https://stackoverflow.com/a/76370643/2000548

相关问题