恐怕我不理解Map-Reduce工作的时间结果.例如,我正在运行的作业从作业跟踪器中获得以下结果.
完成时间:1分钟,39秒
花费的CPU时间(毫秒)150,460 152,030 302,490
CPU时间(ms)中的条目分别用于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");
Run Code Online (Sandbox Code Playgroud)
这不是Job Tracker输出中第一个条目提供的吗?这有必要吗?什么是为hadoop工作计时的最佳方式,特别是当我想要计算IO时间,计算每个节点/每个阶段的时间时?