You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Docker部署Bitnami Spark与Zeppelin时SPARK_HOME配置错误求助

问题分析

核心问题有两点:

  1. Zeppelin容器内未部署Bitnami Spark,你配置的SPARK_HOME=/opt/bitnami/spark是Spark容器内的路径,Zeppelin容器中不存在该目录,因此找不到spark-submit;
  2. 你在Spark容器中看到的spark-submit.cmd是Windows平台脚本,而Zeppelin容器是Linux环境,实际需要的是无后缀的spark-submit可执行文件(Bitnami Spark的Linux镜像bin目录中默认包含该文件)。
解决方案

推荐使用Bitnami官方Zeppelin镜像,它原生适配Bitnami Spark集群,无需手动处理路径、权限等兼容问题。

修改docker-compose.yml配置

替换原有Zeppelin服务配置,同时简化Spark节点的启动命令(符合Bitnami镜像标准用法):

version: "3.7"

services:
  spark-master:
    image: bitnami/spark:latest
    container_name: spark-master
    environment:
      - SPARK_MODE=master
      - SPARK_RPC_AUTHENTICATION_ENABLED=no
      - SPARK_RPC_ENCRYPTION_ENABLED=no
      - SPARK_LOCAL_STORAGE_ENCRYPTION_ENABLED=no
      - SPARK_SSL_ENABLED=no
    depends_on:
      - kafka
    ports:
      - "8080:8080"
      - "7077:7077"

  spark-worker-1:
    image: bitnami/spark:latest
    container_name: spark-worker-1
    depends_on:
      - spark-master
    environment:
      - SPARK_MODE=worker
      - SPARK_WORKER_CORES=2
      - SPARK_WORKER_MEMORY=2g
      - SPARK_MASTER_URL=spark://spark-master:7077
      - SPARK_RPC_AUTHENTICATION_ENABLED=no
      - SPARK_RPC_ENCRYPTION_ENABLED=no
      - SPARK_LOCAL_STORAGE_ENCRYPTION_ENABLED=no
      - SPARK_SSL_ENABLED=no

  spark-worker-2:
    image: bitnami/spark:latest
    container_name: spark-worker-2
    depends_on:
      - spark-master
    environment:
      - SPARK_MODE=worker
      - SPARK_WORKER_CORES=2
      - SPARK_WORKER_MEMORY=2g
      - SPARK_MASTER_URL=spark://spark-master:7077
      - SPARK_RPC_AUTHENTICATION_ENABLED=no
      - SPARK_RPC_ENCRYPTION_ENABLED=no
      - SPARK_LOCAL_STORAGE_ENCRYPTION_ENABLED=no
      - SPARK_SSL_ENABLED=no

  zookeeper:
    image: wurstmeister/zookeeper
    ports:
      - "2181:2181"

  kafka:
    image: wurstmeister/kafka
    container_name: kafka
    ports:
      - "9092:9092"
    depends_on:
      - zookeeper
    environment:
      - KAFKA_ADVERTISED_HOST_NAME=localhost
      - KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181

  cassandra:
    image: cassandra:3.11.3
    container_name: cassandra
    ports:
      - 9042:9042

  zeppelin:
    image: bitnami/zeppelin:latest
    container_name: zeppelin
    depends_on:
      - spark-master
    ports:
      - "8082:8080"
    environment:
      - SPARK_MASTER_URL=spark://spark-master:7077
      - ZEPPELIN_PORT=8080

操作步骤

  1. 停止并删除现有容器:
docker-compose down
  1. 重新启动服务:
docker-compose up -d
  1. 等待所有容器启动完成后,访问http://localhost:8082打开Zeppelin界面,创建新笔记并运行%spark.pyspark测试。

可选方案(不推荐)

若坚持使用apache/zeppelin镜像,需将Spark容器的Spark目录挂载到Zeppelin容器,并处理权限问题:

  • 在spark-master服务中添加卷:volumes: - spark-shared:/opt/bitnami/spark
  • 在zeppelin服务中添加卷:volumes: - spark-shared:/opt/bitnami/spark,同时添加环境变量- SPARK_USER=root
    该方式易出现权限冲突、版本兼容等问题,不如Bitnami官方镜像省心。

内容的提问来源于stack exchange,提问作者Baubau Tran

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 02:14:55