Zeppelin+Spark+Kubernetes:让 Zeppelin Job 运行 on existing Spark Cluster

Zeppelin+Spark+Kubernetes: Let Zeppelin Job run on existing Spark Cluster

在k8s集群中。如何将 zeppelin 配置为 运行 现有 spark 集群中的 spark 作业而不是启动新的 pod?

我有一个 k8s 集群,运行我想在其中 运行 Spark with Zeppelin。

Spark 是使用官方 bitnami/spark helm chart (v 3.0.0) 部署的。我有一个 Master 和两个 Worker pods 运行ning 很好,一切都很好。

Zeppelin 使用来自官方 apache-zeppelin github 的 zeppelin-server.yaml 部署。

我在 apache/zeppelin:0.9.0..

的基础上没有做太多修改就构建了自己的 zeppelin 容器

短伪 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。 (Image,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 作业?我认为设置 spark master 应该可以完成工作...

亲切的问候 鲍勃

过了一段时间才回答自己...

对于 运行 遇到同样问题的任何人:

  1. 进入 spark 解释器设置

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

  3. 编辑 SPARK_SUBMIT_OPTIONS 值并添加“--master spark://<您的 SPARK MASTER 的端点>”

  4. 保存设置并完成...

这让我非常失望,因为已经有一个选项可以设置 spark master 本身。

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

  1. 在键“master”下
  2. 上述 SPARK_SUBMIT_OPTIONS 的编辑。