Search code examples
amazon-ec2ubuntu-14.04mesosmesosphere

Unable to get Mesos to run from tutorial: Setting up a Single Node Mesosphere Cluster


I have been following this tutorial to try and setup a single node mesosphere cluster from their official tutorial:

http://mesosphere.com/docs/getting-started/developer/single-node-install/

I followed all the commands without any issues, and I also added the ports 5050 and 8080 to my security group. When I try to access the console for mesos/marathon, I get a "Internet Explorer cannot display the webpage" message.

They also recommend checking it the following way:

MASTER=$(mesos-resolve `cat /etc/mesos/zk`)
mesos-execute --master=$MASTER --name="cluster-test" --command="sleep 5"

But that comes up with an error:

WARNING: Logging before InitGoogleLogging() is written to STDERR
F0106 17:03:08.126703 20993 process.cpp:1561] Failed to initialize, gethostbyname2: Unknown host
*** Check failure stack trace: ***

I am not really sure how to troubleshoot this either, and there are not many tutorials I could find on how to install mesos on ubuntu.

I checked the contents of the zk file, seems to be the default value.

$ cat /etc/mesos/zk zk://localhost:2181/mesos

I would really appreciate any clues on how to go about this one.

Edit: The process is definitely running too - just an fyi:

root     31545  8.5  5.9 187464 35604 ?        Ssl  17:28   0:00 /usr/local/sbin/mesos-slave --master=zk://localhost:2181/mesos --log_dir=/var/log/mesos
root     31563 28.5  2.1 116304 12856 ?        Rs   17:28   0:00 /usr/local/sbin/mesos-master --zk=zk://localhost:2181/mesos --port=5050 --log_dir=/var/log/mesos --quorum=1 --wo

Solution

  • Mesos uses gethostbyname2 to resolve hostnames to IPs. The first thing I would recommend, is to try "ping localhost" and "ping hostname", and verify that there are no strange settings in /etc/hosts. If you're doing a multi-node cluster, I'd recommend that hostname map to the public IP address (not 127.0.x.1).

    If that doesn't help, you can try setting the --ip and --hostname flags when starting mesos-master and mesos-slave, to bypass the gethostbyname2 resolution. These can also be set by writing to the file-based parameters, e.g. /etc/mesos/mesos-master/ip

    For additional troubleshooting, try running wget http://localhost:5050 (or curl -L) from the mesos master, to verify that it is locally visible. Also try wget http://<public_ip>:5050 to verify that the web server is up and serving to the public IP. Depending on how your (EC2?) node is setup, you may need to expose/forward the port, or connect to a VPN.