
Marathon is an Apache Mesos framework for long-running applications. Given that
you have Mesos running as the kernel for your datacenter, Marathon is the
init or upstart daemon.
Marathon provides a REST API for starting, stopping, and scaling applications. Marathon is written in Scala and can run in highly-available mode by running multiple copies. The state of running tasks gets stored in the Mesos state abstraction.
Try Marathon now on AWS with Elastic Mesos or with Mesosphere for Google Compute Platform and learn how to use it in Mesosphere's interactive Marathon tutorial that can be personalized for your cluster.
Marathon is a meta framework: you can start other Mesos frameworks such as Chronos or Storm with it to ensure they survive machine failures. It can launch anything that can be launched in a standard shell. In fact, you can even start other Marathon instances via Marathon.
Using Marathon versions 0.7.0+ and Mesos 0.20.0+, you can deploy, run and scale Docker containers with ease.
Documentation for installing and configuring the full Mesosphere stack with Mesos + Marathon is available on the Mesosphere website.
/metrics in JSON formatMarathon requires Mesos installed on the same machine in order to use a shared library. One easy way is via your system's package manager. Current builds for major Linux distributions are available from on the Mesosphere downloads page or from Mesosphere's repositories.
If building from source, see the
Mesos Getting Started page or the
Mesosphere tutorial
for details. Running make install will install Mesos in /usr/local in
the same way as these packages do.
Full instructions on how to install prepackaged releases are available in the Marathon docs. Alternatively, you can build Marathon from source.
To build Marathon from source, check out this repo and use sbt to build a JAR:
git clone https://github.com/mesosphere/marathon.git
cd marathon
sbt assembly
Run ./bin/build-distribution to package Marathon as an
executable JAR
(optional).
Mesos local mode allows you to run Marathon without launching a full Mesos
cluster. It is meant for experimentation and not recommended for production
use. Note that you still need to run ZooKeeper for storing state. The following
command launches Marathon on Mesos in local mode. Point your web browser to
http://localhost:8080 to see the Marathon UI.
./bin/start --master local --zk zk://localhost:2181/marathon
For more information on how to run Marathon in production and configuration options, see the Marathon docs.
The Marathon Project Docs contains documentation on simplifying local development and testing of Marathon including how to run a Mesos environment inside a preconfigured virtual machine and a list of recipes for launching applications that test specific Marathon features.
Build tip:
docker build -t marathon-tip .
Run it:
docker run marathon-tip --master local --zk zk://localhost:2181/marathon
If you want to inspect the contents of the Docker:
docker run -i -t --entrypoint=/bin/bash marathon-tip -s
Ruby gem and command line client
Running Chronos with the Ruby Marathon Client:
marathon start -i chronos -u https://s3.amazonaws.com/mesosphere-binaries-public/chronos/chronos.tgz \
-C "./chronos/bin/demo ./chronos/config/nomail.yml \
./chronos/target/chronos-1.0-SNAPSHOT.jar" -c 1.0 -m 1024 -H http://foo.bar:8080
Scala client, developed at Guidewire
Java client by Mohit Soni
Python client, developed at The Factory
Python client, developed at Wizcorp
Go client by Jean-Baptiste Dalido
Node client by Silas Sewell
Clojure client by Halit Olali
Not in the list? Open a pull request and add yourself!
If you have questions, please post on the
Marathon Framework Group
email list. You can find Mesos support in the #mesos channel on
freenode (IRC). The team at Mesosphere is also happy
to answer any questions.
Marathon was created by Tobias Knaup and Florian Leibert and continues to be developed by the team at Mesosphere and by many contributors from the community.
Content type
Image
Digest
sha256:03d7b0916…
Size
557.3 MB
Last updated
over 10 years ago
docker pull partlab/ubuntu-marathon