hadoop版本2(YARN)执行情景结果?

时间:2016-03-04 02:57:07

标签: mapreduce yarn hadoop2

假设我们的YARN系统中有5个容器。我们有两个工作要做。 Job1有8个Map任务和2个Reduce任务。 Job2有4个Map和1个reduce任务。 YARN系统将如何决定首先运行哪些任务? 有多少映射器和缩减器将同时启动?

1 个答案:

答案 0 :(得分:1)

YARN系统将如何决定首先运行哪些“任务”? 这是一个减少地图的工作。因此首先执行map任务。现在订单(我猜这是你真正的问题),作业的执行取决于所使用的调度程序。 fifo首先使用先出 - 这在生产环境中不再使用,因为我们有容量和公平调度程序等选项。这又是一个广泛的话题。 https://hadoop.apache.org/docs/r2.7.1/hadoop-yarn/hadoop-yarn-site/FairScheduler.html https://hadoop.apache.org/docs/r2.7.1/hadoop-yarn/hadoop-yarn-site/CapacityScheduler.html执行还取决于提交作业时可用的群集资源。

将同时启动多少映射器和缩减器? 减速器(至少是reduce方法)只能在执行之后执行 所有地图任务都已完成。您已经提到了容器的数量,但没有提到节点的数量。 并发执行取决于您分配给映射的内存并减少任务。看看这些属性:yarn.scheduler.minimum-allocation-mb,yarn.scheduler.maximum-allocation-mb,yarn.nodemanager.resource.memory-mb,mapreduce.map.memory.mb,mapreduce.reduce.memory .mb。

更新1:随机播放和排序将在其中一个地图任务完成时开始。这意味着当其他地图任务仍在执行时,分区(如果运行组合器,则组合数据)映射器输出将被传输到reducer。但只有在完成此传输过程后才会调用reduce方法(对于完成后的所有map任务)。是的,到那时容器分配就已经发生了。