MapReduce FIFO调度程序

MapReduce FIFO调度程序,mapreduce,Mapreduce,我有一个关于MapReduce FIFO调度程序的问题。我理解作业在到达队列时执行(只要它们具有相同的优先级)。我的理解是,下一项工作将等待当前工作完成。但是,如果当前作业没有完全消耗容量,而下一个作业可以使用剩余容量运行,该怎么办?在这种情况下,下一个作业将立即执行,还是仍然等待当前作业完成 如果第二个作业必须等待第一个作业完成,则相关的问题是,当第一个作业使用其映射任务完成时,是否可以运行第二个作业的映射任务 首先,集群中的每个节点都有固定数量的插槽,这些插槽平均分配给映射任务和减少任务。在

我有一个关于MapReduce FIFO调度程序的问题。我理解作业在到达队列时执行(只要它们具有相同的优先级)。我的理解是,下一项工作将等待当前工作完成。但是,如果当前作业没有完全消耗容量,而下一个作业可以使用剩余容量运行,该怎么办?在这种情况下,下一个作业将立即执行,还是仍然等待当前作业完成


如果第二个作业必须等待第一个作业完成,则相关的问题是,当第一个作业使用其映射任务完成时,是否可以运行第二个作业的映射任务

首先,集群中的每个节点都有固定数量的插槽,这些插槽平均分配给映射任务和减少任务。在FIFO调度程序中,当发生倾斜时,它不是非常有效。例如,如果前一个作业有一个map任务或reduce任务需要“永远”才能完成,那么整个系统可能会停止。幸运的是,这不会发生,因为MapReduce中采用了推测性执行。一旦检测到掉队者,它们的克隆将在其他节点启动

你的第一个问题:我想答案是肯定的。剩余的容量当然将用于下一个作业


第二个问题:当没有剩余容量可用时,下一个作业必须等待。当上一个作业完成其映射任务时,意味着将释放映射任务的插槽。因此,下一个作业可以开始其映射阶段。

首先,集群中的每个节点都有固定数量的插槽,这些插槽平均分配给映射任务和减少任务。在FIFO调度程序中,当发生倾斜时,它不是非常有效。例如,如果前一个作业有一个map任务或reduce任务需要“永远”才能完成,那么整个系统可能会停止。幸运的是,这不会发生,因为MapReduce中采用了推测性执行。一旦检测到掉队者,它们的克隆将在其他节点启动

你的第一个问题:我想答案是肯定的。剩余的容量当然将用于下一个作业

第二个问题:当没有剩余容量可用时,下一个作业必须等待。当上一个作业完成其映射任务时,意味着将释放映射任务的插槽。因此,下一个作业可以开始其映射阶段