Hi, Benjamin: Thanks for the feedback. I agree your statement, Marathon is only a management layer over Mesos.
But, we can run a framework on Mesos via invoking Marathon's REST API. How does this happen? I think Marathon internally calls Mesos's API to start the framework. But I don't see Mesos REST API to create a framework. I only know to run a framework via "mesos-execute" command. Or maybe Marathon implements its own scheduler, and execute a framework by itself? Thanks Wenzhao On Fri, Jul 21, 2017 at 8:28 AM, Benjamin Bannier < [email protected]> wrote: > Hi Wenzhao, > > I am not sure I understand you exactly. > > All Mesos tasks (the stuff running on and managed by Mesos agents) always > belong to a framework; this framework launches and supervises them, and > manages their lifetime. It is not possible to start tasks without a > framework. > > Marathon is a framework. Usually the framework process is not started as a > Mesos task, but instead started by e.g., init.d/systemd, so the framework > itself is not supervised by Mesos. Users can start Mesos tasks by e.g., > hitting Marathon endpoints. Marathon then starts a task with Mesos and > makes sure that the task keeps running (similar to how e.g., systemd might > make sure that the Marathon framework process is running). > > Frameworks can talk to Mesos with two different APIs (often called v0 and > v1); v0 is a C++ API while v1 communicates over HTTP. v1 is not a REST API. > > To launch Mesos tasks you will need a framework. You can either write a > framework yourself, or use an existing one (there’s one list of some > frameworks here, https://mesos.apache.org/documentation/latest/frameworks/ > ). > > > Cheers, > > Benjamin

