gpt4 book ai didi

hadoop - Hadoop 作业的 CPU 时间表示什么?

转载 作者:可可西里 更新时间:2023-11-01 14:15:50 26 4
gpt4 key购买 nike

恐怕我不了解 Map-Reduce 作业的计时结果。例如,我正在运行的作业从作业跟踪器中为我提供了以下结果。

完成时间:1 分 39 秒

花费的 CPU 时间(毫秒)150,460 152,030 302,490

CPU time spent (ms) 中的条目分别针对 Map、Reduce 和 Total。但是,“CPU 时间花费”是如何衡量的,它意味着什么?这是分配给作业的每个映射器和缩减器所花费的总累计时间吗?是否可以从框架中测量其他时间,例如随机播放、排序、分区等的时间?如果是,怎么办?

第二个困扰我的问题。我在这里看到一些帖子(Link1Link2)建议在驱动程序类中使用 getTime():

long start = new Date().getTime();
boolean status = job.waitForCompletion(true);
long end = new Date().getTime();
System.out.println("Job took "+(end-start) + "milliseconds");

这不是在做 Job Tracker 输出中的第一个条目所提供的吗?这是必要的吗?为 hadoop 作业计时的最佳方法是什么,尤其是当我想计时 IO 时间、计算每个节点/每个阶段的时间时?

最佳答案

映射阶段包括:记录读取器、映射、组合器和分区器。

reduce阶段包括:shuffle、sort、reduce、output。

您看到的 CPU 时间是整个 map 阶段和整个 reduce 阶段的……而不仅仅是函数本身。这是一种令人困惑的术语,因为您拥有 map 函数和 reduce 函数,它们只是 map phase 和 reduce phase 的一部分。这是集群中所有节点的总 CPU 时间。

CPU 时间与实时时间有很大不同。 CPU 时间是在 CPU 上花费了多少时间,而实时是你我作为人类所经历的。想一想:假设您有相同的作业在相同的数据上运行,但在一个 20 节点的集群上,然后是一个 200 节点的集群上。总体而言,两个集群将使用相同数量的 CPU 时间,但 200 节点集群的实时运行速度要快 10 倍。当您拥有同时运行大量作业的共享系统时,CPU 时间是一个有用的指标。​​

我不知道您将如何深入研究以获得每个阶段的 CPU 时间。不过,使用日期计时器可能不是您想要的。

关于hadoop - Hadoop 作业的 CPU 时间表示什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11726388/

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