In the past, each framework runs on its dedicated cluster or cluster partition(i.e. We statically partition the cluster and run one framework per partition, or to allocate a set of VMs to each framework. While this greatly simplified the design, it brought many challenges: 1. Inefficient resource usage: frameworks cannot use available resources from other frameworks. 2.Hard to share data: Because these frameworks are developed independently, there is hard or even impossible to perform fine-grained sharing across frameworks. 3. Hard to cooperate: For example, it's hard for Pregel to use graphs generated by Hadoop. The overarching goal of most works in resource management is: How to run multiple frameworks on the same cluster?