【发布时间】:2020-11-29 19:13:37
【问题描述】:
在 k8s 集群中。如何配置 zeppelin 以在现有 spark 集群中运行 spark 作业,而不是启动新的 pod?
我已经启动并运行了一个 k8s 集群,我想在其中运行带有 Zeppelin 的 Spark。
使用官方的 bitnami/spark helm chart (v 3.0.0) 部署 Spark。我有一个 Master 和两个 Worker pod 运行良好,一切都很好。
Zeppelin 使用来自官方 apache-zeppelin github 的 zeppelin-server.yaml 进行部署。
我已经构建了自己的 zeppelin 容器,没有对 apache/zeppelin:0.9.0 进行太多修改..
短伪 Dockerfile:
FROM bitnami/spark:3.0.0 AS spark
FROM apache/zeppelin:0.9-0 AS Zeppelin
COPY --from spark /opt/btinami/spark/ /opt/bitnami/spark
RUN Install kubectl
END
我稍微修改了zeppelin-server.yaml。 (图片,imagePullSecret,设置spark master为spark master的headless Service DNS)
现在我希望我的 zeppelin 作业在我现有的 spark 集群上运行 --- 没有成功。
当我提交 zeppelin 作业(用于 spark 解释器)时,zeppelin 会启动一个新的 spark pod,并且只与这个一起工作。 Spark 解释器设置应该是这样的。 spark master url 已设置 (spark://\<master-url\>:\<master-port\>),spark home 也已设置。
虽然这是一种甜蜜的行为,但这不是我想要的。
我想要(以及我的问题是)是:我希望我的 zeppelin pod 将 spark 作业提交到现有集群 - 而不是启动新的 pod。我很确定必须设置一些config/env/whatever,但我根本找不到。
所以,我想问一下:有没有人知道如何在现有的 spark 集群上运行 zeppelin spark 作业?我认为设置火花大师应该可以完成这项工作......
亲切的问候 鲍勃
【问题讨论】:
-
zeppelin-server.yaml 使用 zeppelin-server 和 zeppelin-interpreter 镜像,这些镜像在 dockerhub 中不可用。为了构建这些镜像,我们需要构建 zeppelin-distribution 镜像,但在我的例子中它失败了。你能指导我在 K8s 中停止 zeppelin。我会完全陷入困境。
标签: apache-spark kubernetes apache-zeppelin