延迟调度总结
流式计算的调度复杂性在于需要考虑公平性和数据本地化。
FIFO调度
FIFO是一个简单的调度策略,适合用于作业并发少,或者无作业并发,且作业的map任务数量大,最好是大于等于集群的slot数量。FIFO调度中经典的两个问题
head-of-line
小作业,多作业并发的场景,量化数据本地化的公式为,为总的slot,为map任务需要的slot
sticky slots
大作业,多作业并发,slot数量小于总作业所需的slot数。作业能达到的最大本地化是
延迟调度
适用于大作业、适用于小作业、适用于长作业。延迟调度是一个综合表现比较好的调度策略。注意:大量作业并发也会存在数据本地化偏低的情况。
Hadoop延迟调试
1. 多级延迟调度
2. map任务做延迟调度,reduce任务不做延迟调度
3. 本地化公式:=73%
D:每秒能释放的slot=S/T