Kylin / Web UI not loading in Docker

121 views Asked by At

Summary

I'm trying to run Apache MDX for Kylin in a Docker container (in order to experiment / test it out) following the instructions on the Apache page, but it doesn't seem to work properly. Specifically, when I try to access the Web UI, I see a blank page that seems like it's trying to load something, but never gets there (in contrast, if the container is not running at all, the page fails immediately with something like "The connection was reset").

The container itself seems to be working OK (for example, the MDX, Hadoop etc. interfaces load up OK).

(Possibly) Relevant details

  • I'm running Docker 24.0.5 on Kubuntu 22.04.

  • The image I'm using is apachekylin/apache-kylin-standalone:kylin-4.0.1-mondrian, but I also tried apachekylin/apache-kylin-standalone:4.0.0 and it has the same problem exactly.

  • I've tried different browsers (Firefox, Chromium, Falkon) to rule out a problem with that.

  • I can enter the container and tested that the network connection works (I can ping Google for example). I also confirmed that the ports used (7070, 7080, 50070, 8088) are not blocked in any way.

  • The MDX interface (port 7080) loads up, but if I try to log in, I get the following error:

    [MDX-01050001] Can't connect to Kylin. Please contact your administrator to check that Kylin is working properly.

    which sort of makes sense if Kylin is not working properly. The error details (pastebin) might contain some useful clues, but I can't tell.

  • The Hadoop Web UI (port 8088) loads up, but reports the node as UNHEALTHY. Not sure what that means. The "Health-report" says:

    1/1 local-dirs are bad: /data/hadoop/nm-local-dir; 1/1 log-dirs are bad: /home/admin/hadoop-2.8.5/logs/userlogs

  • I've tried restarting Kylin from within the container (pastebin), but it makes no difference. I started getting a message about the version of Spark today (wasn't there when I tried the same steps the other day), but I'm not sure if that's related to the problem.

I'm not sure what else to try at this point. Any suggestions on how to identify the problem? Please let me know in the comments if there's any other potentially useful information to include here.


Additional info relating to the answer by David Beavon

Confirmed that the MDX service is running:

# bash mdx-kylin-4.0.1-beta/bin/mdx.sh start
Working directory: /home/admin/mdx-kylin-4.0.1-beta
MDX context path: /
Start Kylin MDX...
MDX_HOME=/home/admin/mdx-kylin-4.0.1-beta
MDX_CONF=/home/admin/mdx-kylin-4.0.1-beta/conf
JAVA_HOME has been set,it's /home/admin/jdk1.8.0_141
JAVA=/home/admin/jdk1.8.0_141/bin/java
Use database: mysql
Semantic Service is already started.

netstat shows the expected ports to be listening, both in the Docker container and on my machine.

Logs in Docker container:

/home/admin/mdx-kylin-4.0.1-beta/logs/semantic.log

/home/admin/mdx-kylin-4.0.1-beta/logs/mdx.log

2

There are 2 answers

2
DavideWasTaken On

I had the same problem but using -h 0.0.0.0 solved it.

The general command now is:

docker run -h 0.0.0.0 -d --name Kylin5-Machine --hostname Kylin5-Machine -m 8G -p 7070:7070 -p 8088:8088 -p 9870:9870 -p 8032:8032 -p 8042:8042 -p 2181:2181 apachekylin/apache-kylin-standalone:5.0-beta
1
David Beavon On

Are you using a VM in a cloud or a local one? Are you using the right tutorial and the right docker image?

https://kylin.apache.org/docs/tutorial/quick_start_for_mdx.html

You have to go thru that full tutorial on the MDX side to set up a semantic layer for MDX queries.

I was initially getting stumped as well, because I had selected the wrong docker image. Later I also forgot to start an additional MDX-related service in the docker container. Below is the correct container name ("mondrian" as you pointed out). And the command to start the additional service for the MDX semantic layer :

 - docker pull apachekylin/apache-kylin-standalone:kylin-4.0.1-mondrian
 - mdx-kylin-4.0.1-beta/bin/mdx.sh start

To make sure services are started, and listening on the right kylin ports, you can use the netstat command: netstat -tulpn | grep LISTEN

I noticed that the very first time I tried using MDX, I had to get started by signing into this portal (7080), via the url: http://20.121.111.222:7080/configuration

As you sign in, it transfers my default user account ("ADMIN") to the MDX service from the primary Kylin service, and uses it as the starting point for a totally different directory of users and roles. (A different directory on the MDX side, to go along with the security on the normal Kylin side).

Finally, I would suggest looking at the MDX-specific kylin logs if you didn't find them (mdx-kylin-4.0.1-beta/logs). The files that are most helpful are mdx.log and semantic.log.

I suspect that you didn't get to the end of the tutorial. Another possibility is that you didn't sign into portal (port 7080). If anything stops working, watch the mdx.log closely.