使用Kubernetes运行Python版Spark 3.2.0客户端模式是否需两个独立镜像?
Spark on K8s 客户端模式镜像兼容性解答
结论
你当前通过带-p参数构建的Python绑定Spark镜像完全支持客户端模式下调度额外执行器容器的需求,无需额外构建不带-p参数的镜像。
原因说明
docker-image-tool.sh的-p参数作用仅为在基础Spark镜像中额外打包Python运行环境、PySpark相关依赖,生成的镜像本身同时兼容驱动、执行器两种运行角色的要求。- Spark在K8s环境运行客户端模式时,只需要执行器容器的镜像包含作业运行所需的依赖即可,你构建的带Python绑定的镜像已经满足PySpark作业的执行条件。
配置参考
提交作业时只需在spark-submit命令中添加对应配置即可:
- 指定部署模式为客户端:
--deploy-mode client - 指定执行器使用的镜像:
--kubernetes.container.image <你构建的镜像仓库地址:my-tag>
如果无特殊的驱动、执行器依赖隔离需求,二者共用同一个带Python绑定的镜像即可正常运行。
内容的提问来源于stack exchange,提问作者Reid K
相关产品推荐
相关产品推荐

