我正试着按照官方网站上的说明在kubernetes上启动spark:spark kubernetes。我按照说明使用他们提供的脚本创建图像,如下所示:
./bin/docker-image-tool.sh -r <repo> -t my-tag -p ./kubernetes/dockerfiles/spark/bindings/python/Dockerfile build
对于 <repo>
我用过Pypark。我提交给库伯内特夫妇的资料如下:
./bin/spark-submit \
--master k8s://https://<ipaddress>:<port>\
--deploy-mode cluster \
--name spark-pi \
--class org.apache.spark.examples.SparkPi \
--conf spark.executor.instances=5 \
--conf spark.kubernetes.container.image=pyspark/spark-py:my-tag \
--conf spark.kubernetes.file.upload.path=/usr/local/spark/examples \
local:///usr/local/spark/examples/spark-examples_2.12-3.0.0.jar
kubernetes的设置看起来还可以,但是pods在拉取图像时出现了问题,导致重启。我不确定我是否有正确的图像命名法。
1条答案
按热度按时间uz75evzq1#
该示例使用pyspark/spark py:my标记作为容器图像,容器图像应该存在,因为它不存在,所以您得到的错误是图像拉取错误。您可以将图像推送到dockerhub或您的私有注册表,并将其用作
example.com/repo/spark:v1.0.0
example.com是您的私有注册表,repo是您的存储库。当你跑的时候
./bin/docker-image-tool.sh -r <repo> -t my-tag build
,则需要指定回购。你的命令应该是./bin/docker-image-tool.sh -r docker.io/myrepo -t v2.3.0 -p kubernetes/dockerfiles/spark/bindings/python/Dockerfile build
如果您使用的是minikube,那么构建映像将直接进入minikube的docker守护进程。不需要将映像推入minikube,在minikube集群内运行应用程序时,它们将自动可用。