【问题标题】:Zeppelin+Spark+Kubernetes: Let Zeppelin Job run on existing Spark ClusterZeppelin+Spark+Kubernetes:让 Zeppelin Job 在现有的 Spark 集群上运行
【发布时间】: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


【解决方案1】:

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

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

  1. 进入火花解释器设置

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

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

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

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

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

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

【讨论】:

    猜你喜欢
    • 2020-07-27
    • 2017-04-16
    • 2020-09-01
    • 2017-03-11
    • 2018-10-29
    • 2020-12-29
    • 2016-03-22
    • 2015-07-18
    • 2018-01-16
    相关资源
    最近更新 更多