Zeppelin+Spark+Kubernetes:让 Zeppelin Job 在现有的 Spark 集群上运行

Posted

技术标签:

【中文标题】Zeppelin+Spark+Kubernetes:让 Zeppelin Job 在现有的 Spark 集群上运行【英文标题】:Zeppelin+Spark+Kubernetes: Let Zeppelin Job run on existing Spark Cluster 【发布时间】: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。我会完全陷入困境。 【参考方案1】:

隔了一段时间再回答自己……

对于遇到相同问题的任何人:

    进入火花解释器设置

    (可选,如果您还没有该属性)按“编辑”,向下滚动并添加属性 SPARK_SUBMIT_OPTIONS

    编辑 SPARK_SUBMIT_OPTIONS 值并添加“--master spark://

    保存设置并完成...

这让我大吃一惊,因为已经有一个设置 spark master 本身的选项。

什么解决了两次进入spark master的问题。

    在“master”键下 上述对 SPARK_SUBMIT_OPTIONS 的编辑。

【讨论】:

以上是关于Zeppelin+Spark+Kubernetes:让 Zeppelin Job 在现有的 Spark 集群上运行的主要内容,如果未能解决你的问题,请参考以下文章

使用 zeppelin 在 kubernetes 上运行 Spark

在 kubernetes 上使用 zeppelin 公开 spark-ui

为啥 Zeppelin-Spark 解释器没有挂载 Kubernetes 服务帐户

Kubernetes 上的 Zeppelin Spark Master 设置

Zeppelin 与 Kubernetes。在非本地模式的解释器设置中未指定 SPARK_HOME

无法提取 zeppelin-server 映像