Book Image

Apache Mesos Essentials

By : Dharmesh Kakadia
Book Image

Apache Mesos Essentials

By: Dharmesh Kakadia

Overview of this book

<p>Apache Mesos is a cluster manager that provides efficient resource isolation and sharing across distributed applications, or frameworks. It allows developers to concurrently run the likes of Hadoop, Spark, Storm, and other applications on a dynamically shared pool of nodes. With Mesos, you have the power to manage a wide range of resources in a multi-tenant environment.</p> <p>Starting with the basics, this book will give you an insight into all the features that Mesos has to offer. You will first learn how to set up Mesos in various environments from data centers to the cloud. You will then learn how to implement self-managed Platform as a Service environment with Mesos using various service schedulers, such as Chronos, Aurora, and Marathon. You will then delve into the depths of Mesos fundamentals and learn how to build distributed applications using Mesos primitives.</p> <p>Finally, you will round things off by covering the operational aspects of Mesos including logging, monitoring, high availability, and recovery.</p>
Table of Contents (15 chapters)
Apache Mesos Essentials
Credits
About the Author
About the Reviewers
www.PacktPub.com
Preface
Index

Marathon


Marathon is a framework used for running long-running services on Mesos (https://github.com/mesosphere/marathon). These services have high availability requirements, which means that Marathon should be able to start the service instance on other machines in case of a failure and should be able to scale elastically. This would include anything that can run on a standard shell as well as special executors. Marathon acts like init.d for your data center or cluster. This means it can make sure that services running on top of it are always running. Marathon is designed to run tasks and guarantees that they stay running. Marathon can run other frameworks, such as Hadoop, as well as itself.

The Marathon API

Marathon has a very comprehensive REST API to manage the life cycle of the services as well as clients available in Java, Scala, Python, and Ruby:

Type

Endpoint

Description

Apps

GET /v2/apps

This lists all the running applications. It also accepts a cmd parameter, which if specified...