在Corona中,ClusterManager负责整个集群的资源管理,包括:(1)维护各个节点的资源使用情况,(2)将各个节点中的资源按照一定的约束分配(比如每个pool使用的资源不能超过其上线,任务分配时应考虑负载均衡等)给各个应用程序。本文介绍了ClusterManager实现。

CoronaJobTracker实际上是一个单Job版本的JobTracker,它是在MRv1的JobTracker基础上修改而来的,它只负责管理一个Job的生命周期,包括该Job的创建、并行化、任务失败时重启、任务运行慢时为其额外启动一个备份任务等。本文介绍了CoronaJobTracker实现。

Thrift由两部分组成:编译器(在compiler目录下,采用C++编写)和服务器(在lib目录下),其中编译器的作用是将用户定义的thrift文件编译生成对应语言的代码,而服务器是事先已经实现好的、可供用户直接使用的RPC Server(当然,用户也很容易编写自己的server)。本文将以C++为例进行一个实例分析。

Mesos是一个开源的资源管理系统,可以对集群中的资源做弹性管理,目前twitter, apple等公司在大量使用mesos管理集群资源,大家记得apple的siri吗,它的后端便是采用的mesos进行资源管理。国内也有零零散散的公司在使用mesos,比如豆瓣。