gpt4 book ai didi

hadoop - 为什么有时mapreduce Average Reduce Time 是负数?

转载 作者:可可西里 更新时间:2023-11-01 14:57:13 28 4
gpt4 key购买 nike

我在 hadoop 集群上运行 mapreduce 作业。我在浏览器中看到的job运行时间master:8088和master:19888(job history server web UI)如下:

主人:8088

master:8088

大师:19888

master:19888

我有两个问题:

  1. 为什么两张图片的耗时不同?
  2. 为什么有时平均减少时间是负数?

最佳答案

看起来 Average Reduce Time 是基于之前任务(洗牌/合并)完成所花费的时间,而不一定是 reduce 实际运行所花费的时间。

看着这个source code您可以看到在第 300 行附近发生的相关计算。

if (attempt.getState() == TaskAttemptState.SUCCEEDED) {
numReduces++;
avgShuffleTime += (attempt.getShuffleFinishTime() - attempt.getLaunchTime());
avgMergeTime += attempt.getSortFinishTime() - attempt.getShuffleFinishTime();
avgReduceTime += (attempt.getFinishTime() - attempt.getSortFinishTime());
}

其次是:

if (numReduces > 0) {
avgReduceTime = avgReduceTime / numReduces;
avgShuffleTime = avgShuffleTime / numReduces;
avgMergeTime = avgMergeTime / numReduces;
}

看看你的数字,它们似乎与这种计算运行时间的方法大体一致(所有内容都转换为秒):

总的 Pre-reduce 时间 = Map Run Time + Ave Shuffle + Ave Merge
143 = 43 + 83 + 17

平均减少时间 = 耗时 - 总预减少
-10 = 133 - 143

所以看看 MapShuffleMergeElapsed 相比我们最终花费了多长时间在您的 -8 附近有一个负数。

关于hadoop - 为什么有时mapreduce Average Reduce Time 是负数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37426723/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com