【问题标题】:Spark Standalone + Zeppelin + Docker: how to set SPARK_HOMESpark Standalone + Zeppelin + Docker:如何设置 SPARK_HOME
【发布时间】:2019-12-27 04:54:15
【问题描述】:

我使用this 脚本构建了一个 Spark 独立集群。

然后我想使用另一个容器中的 Zeppelin 将作业提交到该集群。

问题是当我尝试从 zeppelin 运行任何东西时,我得到一个异常:

java.lang.RuntimeException: SPARK_HOME is not specified in interpreter-setting for non-local mode, if you specify it in zeppelin-env.sh, please move that into interpreter setting

如何在 Zeppelin 容器中设置 SPARK_HOME 变量?

问题是 Spark 在另一个容器中,我想知道我做的是否正确?

【问题讨论】:

    标签: docker apache-spark apache-zeppelin


    【解决方案1】:

    构建镜像或者使用官方的zeppelin都是一样的,所以我只是使用官方的dockerhub镜像来举例说明:

    $ docker run --rm  apache/zeppelin:0.8.1 cat /zeppelin/conf/zeppelin-env.sh.template | grep SPARK_HOME
    ## defining SPARK_HOME makes Zeppelin run spark interpreter process using spark-submit
    # export SPARK_HOME                             # (required) When it is defined, load it instead of Zeppelin embedded Spark libraries
    ## without SPARK_HOME defined, Zeppelin still able to run spark interpreter process using embedded spark binaries.
    ## however, it is not encouraged when you can define SPARK_HOME
    

    从上面你可以看到,在这个配置文件中,你可以设置SPARK_HOME,你现在唯一需要做的就是编写你自己的配置文件类似下一个:

    zeppelin-env.sh:

    #!/bin/bash
    export SPARK_HOME=xxxxxx
    

    然后,在运行时像next一样挂载到容器中启动容器,你可以根据你引用的文档添加其他参数:

    docker run -idt -v $(pwd)/zeppelin-env.sh:/zeppelin/conf/zeppelin-env.sh apache/zeppelin:0.8.1
    

    另外,我注意到你提到的文件中也告诉你这样做,见here

    【讨论】:

    • 我不太清楚 spark_home 工件在 zeppelin 容器上的安装位置...
    • 其实我从来没用过zeppelin,但是我觉得zeppelin只是用spark-client和spark cluster通信,所以在host上安装spark,自己挂载到zeppelin容器就是这样。
    【解决方案2】:

    在您的 docker-compose.yaml 文件中,挂载您本地下载的 spark 卷。 即

    zeppelin-notebook:
        image: apache/zeppelin:0.10.0
        ports:
          - "3000:8080"
        environment:
          - LOCAL_IP=zeppelin-notebook
          - SPARK_HOME=/opt/spark
        volumes:
          - ./zeppelin/notebooks:/zeppelin/notebook
          - <path to your local spark folder>/spark-3.0.2-bin-hadoop3.2/:/opt/spark
    
    • 执行docker-compose up。

    【讨论】:

      猜你喜欢
      • 2019-12-29
      • 2017-06-26
      • 2020-02-29
      • 2016-05-08
      • 2018-03-18
      • 2018-05-11
      • 2020-12-29
      • 2017-05-26
      • 2018-07-07
      相关资源
      最近更新 更多