背景

最近在学spark,在网上找了关于docker部署很多资料,都是部署bitnami/spark这个镜像的,这个镜像在3.1.2版本上运行pyspark正常,但是在3.4.0以上版本上运行pyspark就报Error: pyspark does not support any application options
相关参考:https://github.com/bitnami/containers/issues/38139
感觉是这个镜像自己的问题,所以我根据官方的docker镜像构建了一个新的,能正常运行pyspark

步骤

使用使用docker-compose安装

  1. docker-compose文件如下
 spark:
    build:
      context: ..   # 关键点:将构建上下文设置为父目录(docker的上级目录)
      dockerfile: docker/spark/Dockerfile  # Dockerfile的相对路径(相对于context)
    image: spark:3.4.2  # <<< 显式指定镜像名称
    container_name: spark
    networks:
      - hp_network
    ports:
      - "8080:8080"
      - "7077:7077"
    hostname: spark-master
    command: bash -c "start-master.sh && tail -f /dev/null"  
  1. Dockerfile文件
# ===== 生产镜像阶段 =====
FROM spark:3.4.2-scala2.12-java11-python3-r-ubuntu

ENV SPARK_HOME=/opt/spark
ENV PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin

# 设置权限
RUN chmod +x $SPARK_HOME/bin

USER root

# 安装必要依赖
RUN apt-get clean && apt-get update && apt-get install -y \
    vim \
    tzdata && \ 
    # 设置固定时区(以中国为例)
    ln -fs /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
    echo "Asia/Shanghai" > /etc/timezone && \
    apt-get clean && rm -rf /var/lib/apt/lists/*

WORKDIR /opt/spark

EXPOSE 8080 7077
  1. 相关目录结构
    在这里插入图片描述
  2. 编译并运行
docker compose -f 'docker\docker-compose.yml' up -d --build 'spark'

测试

  1. 访问:spark web页面

在这里插入图片描述

  1. 测试pyspark
    进入容器内部,执行
pyspark

在这里插入图片描述

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐