在 docker 中使用 spark 2.2 运行 zeppelin
Posted
技术标签:
【中文标题】在 docker 中使用 spark 2.2 运行 zeppelin【英文标题】:Running zeppelin with spark 2.2 in docker 【发布时间】:2018-07-14 10:22:34 【问题描述】:如何在 docker 中使用 Spark 2.2 运行 Zeppelin?
如果我在 docker 中启动 zeppelin,它是从 spark 2.1 开始的。
docker run -p 8080:8080 --rm --name zeppelin apache/zeppelin:0.7.3
我想用 2.2
我试过这个配置,它在 Windows 笔记本电脑上启动,但是当我在 Zeppeling Notebook 中运行命令 spark 时出错
master:
image: gettyimages/spark
command: bin/spark-class org.apache.spark.deploy.master.Master -h master
hostname: master
environment:
MASTER: spark://master:7077
SPARK_CONF_DIR: /conf
SPARK_PUBLIC_DNS: localhost
expose:
- 7001
- 7002
- 7003
- 7004
- 7005
- 7006
- 7077
- 6066
ports:
- 4040:4040
- 6066:6066
- 7077:7077
- 8080:8080
volumes:
- ./conf/master:/conf
- ./data:/tmp/data
zeppelin:
image: apache/zeppelin:0.7.3
environment:
ZEPPELIN_PORT: 8090
ZEPPELIN_JAVA_OPTS: >-
-Dspark.driver.memory=1g
-Dspark.executor.memory=2g
MASTER: local[*]
SPARK_MASTER: spark://master:7077
SPARK_HOME: master
ports:
- 8090:8090
volumes:
- ./data:/usr/zeppelin/data
- ./notebooks:/usr/zeppelin/notebook
但我得到错误
org.apache.zeppelin.interpreter.InterpreterException: /zeppelin/bin/interpreter.sh: line 211: master/bin/spark-submit: No such file or directory
【问题讨论】:
首先,尝试从配置中删除所有卷并再次运行它。它可能会有所帮助 我相当肯定你的docker-compose.yml
的最后两行是愚蠢的。会是哪一个?本地 Spark 或远程 Spark 集群。一行这样说,另一行这样说。除此之外,该 zeppelin 容器仅支持本地模式。您必须给它另一个 Spark 主页,才能使用远程 Spark 集群,请参阅its manual
【参考方案1】:
如果你只想使用现有的镜像,你需要找到一个使用 Spark 2 构建的。例如,以下是使用 spark 2.2,开始使用它运行以下命令
docker run --rm -p 8080:8080 dylanmei/zeppelin
或者,您可以构建自己的图像,将下面链接的内容保存在 Dockerfile 中
https://hub.docker.com/r/dylanmei/zeppelin/~/dockerfile/
进行更改,然后使用构建图像
docker build -t myZeppelinSparkImage .
【讨论】:
以上是关于在 docker 中使用 spark 2.2 运行 zeppelin的主要内容,如果未能解决你的问题,请参考以下文章
利用docker搭建spark hadoop workbench
Hadoop集群+Spark集群搭建基于VMware虚拟机教程+安装运行Docker
Hadoop集群+Spark集群搭建基于VMware虚拟机教程+安装运行Docker