【发布时间】:2012-07-30 17:20:13
【问题描述】:
恐怕我不明白 Map-Reduce 作业的计时结果。例如,我正在运行的一项工作为我提供了来自工作跟踪器的以下结果。
完成时间:1 分 39 秒
花费的 CPU 时间(毫秒)150,460 152,030 302,490
CPU 时间(毫秒)中的条目分别用于 Map、Reduce 和 Total。但是,那么如何衡量“花费的 CPU 时间”以及它意味着什么?这是分配给作业的每个映射器和缩减器所花费的总累积时间吗?是否可以从框架中测量其他时间,例如随机播放、排序、分区等时间?如果有,怎么做?
困扰我的第二个问题。我在这里看到了一些帖子(Link1、Link2)建议在驱动程序类中使用 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 时间、计算每个节点/每个阶段的时间时?
【问题讨论】:
-
你应该在不同的帖子中提出不同的问题
标签: hadoop timing benchmarking