0

I am trying to integrate Zeppelin on our DC/OS 1.10 based cluster. I tried the official ways by

  1. using the Catalog menu (GUI)
  2. by using the CLI and by combining Zeppelin with Marathon-LB to enable the access of the Zeppelin frontend, outside of our cluster.

Moreover, I also tried to run Zeppelin on a public agent node (so without using Marathon-LB). Although Zeppelin is running, the Zeppelin GUI (https:/{floating ip of master node}/service/zeppelin/) shows Zeppelin is still "disconnected" (Console output of Firefox: Firefox can’t establish a connection to the server at wss://{floating ip of master node}/service/zeppelin/ws.).

It seems that DC/OS installs an older version of Zeppelin (0.5.6-3), may be causing the problems.

We switched to that newer version of Zeppelin:

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

But I still can't connect Zeppelin with Marathon-LB. It is said, I would have to downgrade port 80 to TCP. But the config file for Marathon-LB shows already the follwing parameters for portDefinitions:

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

What version of Marathon-LB is required to work properly with Zeppelin 0.70? Currently, we use Marathon 1.11.1.

Best regards

Tombart
  • 30,520
  • 16
  • 123
  • 136
Matzka
  • 125
  • 1
  • 13

1 Answers1

0

When you use https:/{master node IP}/service/zeppelin/ the request is proxied via Admin Router (nginx webserver running on each master node). It has nothing to do with Marathon-LB, thus the version is in this case irrelevant.

When you open zeppelin service definition in Marathon (or DC/OS UI) you should be able to see something like this:

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

which means that UI running in Docker container on 8080 will be mapped to random port number on host and then propagated further.

If you want to use Marathon-LB to access Zeppelin web interface, you have to add some Marathon-LB labels to the task, e.g.:

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

but it the service is not working via Admin Router it probably won't work via Marathon-LB. There must be some other problem with Zeppelin configuration. See the applications logs.

However, the problem you're having might be connected to websockets load balancing

Tombart
  • 30,520
  • 16
  • 123
  • 136