【问题标题】:Integration of Zeppelin in DC/OS 1.10在 DC/OS 1.10 中集成 Zeppelin
【发布时间】:2017-12-05 08:05:22
【问题描述】:

我正在尝试将 Zeppelin 集成到我们基于 DC/OS 1.10 的集群上。我尝试了官方的方式

  1. 使用目录菜单 (GUI)
  2. 通过使用 CLI 并将 Zeppelin 与 Marathon-LB 相结合,以启用在我们集群外部的 Zeppelin 前端的访问。

此外,我还尝试在公共代理节点上运行 Zeppelin(因此不使用 Marathon-LB)。尽管 Zeppelin 正在运行,但 Zeppelin GUI (https:/{floating ip of master node}/service/zeppelin/) 显示 Zeppelin 仍然“断开连接”(Firefox 的控制台输出:Firefox 无法在wss://{floating ip of master node}/service/zeppelin/ws 建立与服务器的连接。)。

似乎 DC/OS 安装了旧版本的 Zeppelin (0.5.6-3),可能会导致问题。

我们切换到新版本的 Zeppelin:

https://github.com/jshenguru/dcos-zeppelin

但我仍然无法将 Zeppelin 与 Marathon-LB 连接起来。据说,我必须将端口 80 降级为 TCP。但是 Marathon-LB 的配置文件已经显示了 portDefinitions 的以下参数:

   {
      "protocol": "tcp",
      "port": 80
   },

需要什么版本的 Marathon-LB 才能与 Zeppelin 0.70 正常工作?目前,我们使用 Marathon 1.11.1。

最好的问候

【问题讨论】:

    标签: tcp cluster-computing apache-zeppelin marathon dcos


    【解决方案1】:

    当您使用https:/{master node IP}/service/zeppelin/ 时,请求通过Admin Router 代理(每个主节点上运行的nginx 网络服务器)。它与 Marathon-LB 无关,因此在这种情况下版本无关。

    当您在 Marathon(或 DC/OS UI)中打开 zeppelin 服务定义时,您应该能够看到如下内容:

      "container": {
        "portMappings": [
          {
            "containerPort": 8080,
            "hostPort": 0,
            "protocol": "tcp",
            "servicePort": 0
          }
        ],
      }
    

    这意味着在8080上的Docker容器中运行的UI将被映射到主机上的随机端口号,然后进一步传播。

    如果你想使用 Marathon-LB 访问 Zeppelin web 界面,你必须在任务中添加一些 Marathon-LB 标签,例如:

    "HAPROXY_GROUP": "external",
    "HAPROXY_0_VHOST": "zeppelin.example.net",
    

    但该服务无法通过 Admin Router 运行,它可能无法通过 Marathon-LB 运行。 Zeppelin 配置肯定有其他问题。查看应用程序日志。

    不过,您遇到的问题可能与websockets load balancing有关

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-05
      • 1970-01-01
      • 2017-04-02
      • 2021-04-04
      • 2011-02-14
      相关资源
      最近更新 更多