如何在 Zeppelin 中切换 Spark 版本以使用 Spark 3.x

How can I switch the Spark version in Zeppelin to use Spark 3.x

我正在尝试设置 Docker 化版本的 Spark 和 Zeppelin,但我似乎无法理解如何将 Zeppelin 版本切换到 3.x 版本的 Spark。

我使用的是来自 Docker Hub 的默认 Zeppelin 图片。这是我的 docker-compose.yml.

的摘录
  zeppelin:
    image: apache/zeppelin:0.9.0
    container_name: zeppelin
    #depends_on:
    #  - spark-master
    ports:
      - "8083:8080"

如果我访问 Zeppelin(在 localhost:8083),并执行 spark.version,它仍然读取版本 2.4.5。

如何更改 Zeppelin 中的 spark 版本?我可以看到支持的版本数量相当多,但文档没有说明如何切换 versions.https://github.com/apache/zeppelin/blob/master/spark/spark-shims/src/main/scala/org/apache/zeppelin/spark/SparkVersion.java#L25

您需要设置 SPARK_HOME & spark_master 一个合适的。请按照 Zeppelin 文档中的说明进行操作:

https://zeppelin.apache.org/docs/latest/interpreter/spark.html

您可以 运行 在单独的容器中生成 spark 并将 spark master 指向它,另一种简单的方法是在 Zeppelin[= 之上使用 Spark 构建您的图像16=]

创建一个 Dockerfile 文件,以 zeppelin 作为基础镜像

FROM apache/zeppelin:0.9.0
ENV SPARK_VERSION=3.0.0
ENV HADOOP_VERSION=3.2
ENV SPARK_INSTALL_ROOT=/spark

ENV SPARK_HOME=${SPARK_INSTALL_ROOT}/spark-${SPARK_VERSION}-bin-hadoop${HADOOP_VERSION}

USER root
RUN mkdir "${SPARK_INSTALL_ROOT}"
USER $USER

RUN cd "${SPARK_INSTALL_ROOT}" && \
    wget --show-progress https://archive.apache.org/dist/spark/spark-$SPARK_VERSION/spark-$SPARK_VERSION-bin-hadoop${HADOOP_VERSION}.tgz && \
    tar -xzf spark-${SPARK_VERSION}-bin-hadoop${HADOOP_VERSION}.tgz

Now Use this image to 运行 with docker-compose, 你可以创建带有标签的图像并在这里使用它或者你可以直接参考 Dockerfile 如下 版本:'2'

services:
  zeppelin:
    image: zeppelin-spark
    build:
      context: .
      dockerfile: Dockerfile
    container_name: zeppelin
    ports:
      - "8083:8080"

现在运行docker-compose up -d确保两个文件都在同一个目录中,或者随意调整上下文中的路径

然后你看到版本为3.0.0