Me Sos Docker
Me Sos Docker
Caution: These are high level notes that I use to organize my lecture. You may find them useful
for reviewing main points, but they aren't a substitute for participating in class
References:
Docker Project
https://docs.docker.com/
Introduction
Every programming model has strengths and weaknesses, none are universally
applicable: Hadoop, Spark, MPI, Makeflow, etc…
However, most systems assume that they own the whole cluster.
Non-solutions: static partitioning, assignment of VMs, global scheduling.
Key Idea: Mesos allocates resources to frameworks, which do their own scheduling.
Exactly this problem occurs at Facebook and Yahoo (and presumably elsewhere.)
Architecture
Master node, standby masters, slave nodes, and schedulers.
(Zookeeper tracks the master state and enables fail-over.)
Worker nodes report resource availability to the master.
Master offers resources to the schedulers.
Schedulers may accept offers and dispatch tasks, or reject offers.
Master dispatches tasks to the workers.
Optimization: schedulers may filter on node names.
Allocation Policy
Policy is pluggable: fair share and strict priority are common.
Resources are generally reallocated when tasks end.
However, if a task takes too long, it can be killed to reallocate.
Storage Management
Problem: storage goes away with an allocation is removed.
Two solutions:
Run HDFS continuously as a cluster allocation within Mesos
A user-level file server is provided to access local storage.
Hadoop HDFS runs continuously to provide cluster storage.
Summary
Mesos is like a cluster operating system – it provides the equivalent of malloc() to obtain
resources on multiple nodes, then lets each framework implement the desired abstraction.
Docker provides isolation between applications on the same node, with less overhead
than a full virtual machine.