Я пишу задание MapReduce, используя Hadoop, и хочу измерить время выполнения задания, а собираю его, используя Date (я знаю, что также в пользовательском интерфейсе я могу видеть время выполнения).Чтобы найти правильное время выполнения, я запускаю это задание 3 раза (используя один jar hadoop и цикл 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), чем я получаю быстрое время выполнения.
Есть ли другой способ измерить время выполнения без ручного запуска три раза?