Minikube部署Spark Master容器遇Permission Denied错误求助
问题解决:Spark Master容器启动权限拒绝错误
问题原因
你遇到的exec: "/spark-master": permission denied错误,是因为Docker容器内的/spark-master脚本没有被赋予可执行权限。通过ADD指令将本地脚本复制到容器后,默认不会自动添加执行权限,导致容器启动时无法执行该脚本。
解决方案
在你的Spark Master Dockerfile中,添加完脚本后增加一条指令,为所有启动脚本赋予可执行权限:
修改后的Dockerfile片段:
# add scripts and update spark default config ADD common.sh spark-master spark-worker / ADD spark-defaults.conf /opt/spark/conf/spark-defaults.conf # 赋予脚本可执行权限 RUN chmod +x /spark-master /spark-worker /common.sh ENV PATH $PATH:/opt/spark/bin
替代方案(Docker 19.03+适用)
你的Docker版本20.10.18满足要求,也可以在复制脚本时直接指定权限,用COPY代替ADD:
# 复制脚本并直接赋予可执行权限 COPY --chmod=755 common.sh spark-master spark-worker / ADD spark-defaults.conf /opt/spark/conf/spark-defaults.conf ENV PATH $PATH:/opt/spark/bin
验证逻辑
执行上述修改后,重新构建镜像并部署Pod,容器就能正常执行/spark-master脚本,启动Spark Master服务。
内容的提问来源于stack exchange,提问作者muhammad800804
相关产品推荐
相关产品推荐

