Apache Spark Docker容器启动权限错误求助
解决Spark Docker容器启动Master时的权限问题
方案1:以root身份进入容器调整权限
- 启动容器时指定root用户:
docker run -ti --name spark --user root apache/spark:v3.3.0 bash - 创建日志目录并修改归属为185用户:
mkdir -p /opt/spark/logs chown 185:185 /opt/spark/logs - 切换回185用户,设置环境变量并启动Spark Master:
su -l 185 export SPARK_NO_DAEMONIZE=true /opt/spark/sbin/start-master.sh
方案2:一次性执行权限调整与启动命令
无需分步进入容器,直接通过命令链完成权限配置和启动:
docker run -ti --name spark apache/spark:v3.3.0 bash -c "mkdir -p /opt/spark/logs && chown 185:185 /opt/spark/logs && su -l 185 -c 'export SPARK_NO_DAEMONIZE=true && /opt/spark/sbin/start-master.sh'"
方案3:自定义Spark日志目录(无需切换root)
利用185用户有权限的家目录存放日志,避免修改/opt目录权限:
- 启动容器并进入bash:
docker run -ti --name spark apache/spark:v3.3.0 bash - 设置日志目录环境变量,创建目录后启动Master:
export SPARK_NO_DAEMONIZE=true export SPARK_LOG_DIR=/home/spark/logs mkdir -p $SPARK_LOG_DIR /opt/spark/sbin/start-master.sh
内容的提问来源于stack exchange,提问作者ha9u63a7
相关产品推荐
相关产品推荐

