【问题标题】:Expose spark-ui with zeppelin on kubernetes在 kubernetes 上使用 zeppelin 公开 spark-ui
【发布时间】:2021-07-08 03:42:22
【问题描述】:

首先,我对所有这些(kubernetes、ingress、spark/zeppelin ...)都很陌生,所以如果这很明显,我很抱歉。我尝试在这里搜索、文档等,但找不到任何东西。

我正在尝试使 spark 解释器 ui 可以从运行在 kubernetes 上的 zeppelin 笔记本访问。 按照我从这里的理解:http://zeppelin.apache.org/docs/0.9.0-preview1/quickstart/kubernetes.html,我的入口 yaml 看起来像这样:

Ingress.yaml

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: ingress-zeppelin-server-http
http
spec:
  rules:
  - host: my-zeppelin.my-domain
    http:
      paths:
      - backend:
          serviceName: zeppelin-server
          servicePort: 8080
  - host: '*.my-zeppelin.my-domain'
    http:
      paths:
      - backend:
          serviceName: spark-guovyx
          servicePort: 4040
status:
  loadBalancer: {}

我的问题是我需要将服务名称(在本例中为 spark-guovyx)设置为解释器 pod 名称才能显示 UI。但是,由于此名称必然会更改/具有不同的名称(即我每个用户有一个解释器 + 解释器经常重新启动),显然我不能依赖手动设置它。我最初的想法是为 serviceName 使用某种通配符命名,但结果 ingress/kubernetes 不支持。请问有什么想法吗?

谢谢。

【问题讨论】:

    标签: apache-spark kubernetes kubernetes-ingress apache-zeppelin


    【解决方案1】:

    您可以创建新服务并利用 spark master pod 的 interpreterSettingName 标签。当 zeppelin 创建主 spark pod 时,它会添加此标签,其值为 spark。我不确定它是否适用于每个用户每个解释器设置中的多个 pod。下面是服务代码,请告诉我每个解释器对每个用户的行为。

    kind: Service
    apiVersion: v1
    metadata:
      name: sparkUI
    spec:
      ports:
        - name: spark-ui
          protocol: TCP
          port: 4040
          targetPort: 4040
      selector:
        interpreterSettingName: spark
      clusterIP: None
      type: ClusterIP
    

    然后你可以让你的入口为:

    apiVersion: extensions/v1beta1
    kind: Ingress
    metadata:
      name: ingress-zeppelin-server-http
    http
    spec:
      rules:
      - host: my-zeppelin.my-domain
        http:
          paths:
          - backend:
              serviceName: zeppelin-server
              servicePort: 8080
      - host: '*.my-zeppelin.my-domain'
        http:
          paths:
          - backend:
              serviceName: sparkUI
              servicePort: 4040
    status:
      loadBalancer: {}
    

    也请查看此 repo https://github.com/cuebook/cuelake,它仍处于早期开发阶段,但希望听到您的反馈。

    【讨论】:

    • 你好维克兰特,我赞成/接受你的回答,因为它确实解决了我的问题,非常感谢它让我发疯! Cuelake 看起来确实很有趣,就我而言,我更想将 spark/zeppelin 部署为多个用户的数据研究平台,而不是类似 ELT 的工具。
    猜你喜欢
    • 2020-07-27
    • 2020-09-01
    • 2020-11-29
    • 2020-12-29
    • 2017-08-22
    • 2019-03-13
    • 2017-04-25
    • 1970-01-01
    • 2018-09-29
    相关资源
    最近更新 更多