第7章 分布式作业调度平台的实现
在前面第2章介绍的分布式并行计算原理中,我们看到可以将工头工人程序部署到不同的机器上运行,然后完成计算。但是,当这样的并行计算应用非常多,而我们的机器数量有限时,我们需要排队依次来使用机器,第一个并行计算应用跑完了,再跑第二个应用,如果第一个并行计算应用只占部分机器,那么可以考虑同时跑第二个应用……这就涉及建立一个作业调度平台去完成。
我们知道Hadoop本身包含了作业调度的部分,按照Hadoop开发规范,开发好一个作业,打包后,Hadoop会分发到相应的机器上去运行,但是实际上这仅仅是一种任务调度层面的实现,我们还需要资源层面的调度,比如对CPU、内存、带宽等的分配和管理。
本章会讲述调度平台的设计和实现,包括任务调度和资源调度的实现机制,各种资源调度算法,并以MPI调度器的为例讲述一个完整Demo,最后再讲述市场上常用的调度实现和框架,比如Torque、Mesos、Yarn等。