此问题将不讨论Hadoop或Spark中的特定情况。
[当我阅读MapReduce: Simplified Data Processing on Large Clusters时,我很困惑
主人选择空闲的工人,并为每个工人分配一个地图任务或一个减少任务。
那么,主服务器如何决定一个工人应该执行Map任务还是Reduce任务?如果仅先分配减少任务,我们将永远无法完成工作吗? (因为将不会完成Map任务)
仅在完成map和shuffle阶段所需的数据后才需要运行Reduce。
[在MapReduce的Hadoop实现的上下文中,地图任务是根据数据局部性决定的,否则,将选择任何由YARN决定的开放资源