[cloud] A common substrate for cluster computing

来源:互联网 发布:nodejs mongodb 知乎 编辑:程序博客网 时间:2024/05/01 10:20

title = A Common Substrate for Cluster Computing
author = Benjamin Hindman, Andy Konwinski, Matei Zaharia, Ion Stoica
location = University of California, Berkeley
mail = {benh,andyk,matei,istoica}@cs.berkeley.edu

conf = HotCloud' 09 workshop (USENIX)


文章提出Nexus: a low-level substrate that provides isolation and efficient resource sharing across frameworks running on the same cluster, while give each framework freedom to implement its own programming model and fully control the execution of its jobs.

    不同的云计算实现有着不同的计算模型(programming model),在同一物理存储之上。使用多个计算模型可能需要copy存储资源, then process。而不同的模型之间还不能共享,更不用说在单一物理存储之上合并着使用多个计算模型的功能。(这里指的计算模型,现在在现实中基本上为不同企业各自的云计算平台实现,比如Hadoop[4],Dryad[12])

    MapReduce 优点是simplicity,可它的simplicity也使得其express some computations时复杂困难。之后开发还有high-level,domain-specific 的abstraciotns,使用MapReduce作为 an execution substrate的 Sawzall[15]和 Pig[14],以及使用自己的execution substrate 的 Dryad[12]。开发新的计算模型很复杂,而且,MapReduce 和 Dryad 也有其不能理想地表示的计算:1.Iterative Jobs;2. Nested Parallelism;3. Irregular Parallelism;4. Existing Parallel Applications.(已经存在的)。

    所以作者提出了Nexus,Nexus提供了一个抽象层,定义了概念Tasks 和 Slots。一个Task表示一组可以当作一个单位对待的工作。一个Slot表示framework可以在其上运行task的计算资源(A Slot represents a computing resource in which a framework may run a task)。

    Nexus提供了两个层次的调度:第一个层次,使用fair sharing在frmaworks之间分配slots;第二个层次,每一个framework负责1.将其上work划分为tasks,2.决定使用那些slot 以及3. 选择分配在每一个slot上运行的task。这给予每一个单独的framework自己定义和优化的空间。

<图片1>
   

如Figure 1所示,Nexus的体系结构。Nexus提供了master,scheduler,executor三个process,这三个process:
1. master process在cluster内的每一个节点上控制着一个slave 守护进程(daemon);
2. 每一个framework拥有一个scheduler process 向master 登记;
3. scheduler提供了task descriptor(任务描述符),通过task descriptor在其分配到的slots上运行tasks。而每个task descriptor被传递给Nexus提供的位于slave 节点上的对应于各个framework (framework-specified)的executor process。
    这样实现了从高层到底层的映射和非配。一个framework如果在某个物理节点上分配了多个slot,则每个slot拥有一个executor。executor还可以被后续使用该slot的tasks重用,这也实现了tasks间的共享。
    最后,Nexus将tasks的status update传递给schedulers。

整个系统体系结构说明如上。

    Nexus提供的是一种抽象机制,使得不同framework提供的不同计算模型可以同时在同一物理存储上运作,不必进行物理存储资源在不同framework间的copy。这种抽象在未来随着越来越多的云计算平台被不同公司使用不同计算模型实现会变得越来越重要,也就是一个统一的云计算模型,一种计算模型标准会被人们努力的规范提出。这一步,米国又走到了前面。

 

PS: 晕了,我上传的图片显示到哪里去了,....