自动测量Hadoop执行时间

时间:2018-10-18 23:30:13

标签: java hadoop2

我本机使用Hadoop编写MapReduce作业,我想测量作业的执行时间,并使用Date收集它(我知道在UI中我也可以看到执行时间)。 为了找到正确的执行时间,我将该作业运行了3次(使用一个hadoop jar和一个调用该作业的for循环),并且得到了非常奇怪的结果。

似乎第一次运行的时间比其他时间短得多,并且我得到相同的输出(我知道容器的位置可能是更改执行时间的原因,但是我不确定为什么第一次运行总是最快的)。 我正在使用的代码示例

public int run (String[] args ) throws Exception {
Configuration conf = getConf();
conf.set(...)
.
.
.
for (int i = 0; i < 3; i++)
{
Job job =job.getInstance(conf, "OR-MR");
.
.
.
if (!job.waitForCompletion(true))
  { 
    System.exit(1);
  }
}//for
}//run

顺便说一句,如果我将作业运行了3次(每个hadoop命令一次)比执行时间快。

还有其他方法可以测量执行时间而无需手动运行3次吗?

0 个答案:

没有答案