Скорость выполнения на этапе карты (поздний планировщик) — Hadoop

#hadoop #progress #scheduler

#hadoop #прогресс #планировщик

Вопрос:

Я пытаюсь выяснить скорость выполнения задач карты. Если кто-нибудь сможет мне помочь, это будет здорово!! Спасибо!!

Ответ №1:

Есть два способа отслеживать прогресс карты и сокращать время выполнения задания.

Первый — это веб-интерфейс.

http://pdhadoop1:50030 где pdhadoop1 находится ваш компьютер с namenode.

Другой способ находится внутри драйвера задания, его можно вывести на консоль (или в другое место) После отправки задания мы входим в while цикл и проверяем job.isComplete() . Внутри цикла мы делаем

 System.out.println(String.format("Progress of Page views ETL Job %s:", job.getJobID().toString()));
System.out.println(String.format("tMap : %f, Reduce %F", job.mapProgress(), job.reduceProgress()));
  

Затем мы Thread.sleep(60000) и цикл продолжается до тех пор, пока задание не будет завершено.

С помощью обоих этих методов я могу следить за ходом выполнения карты и сокращать компоненты задания.

Веб-интерфейс позволяет просматривать журналы и дополнительную полезную информацию. Счетчики, записи, байты… Очень приятная функция.

Я надеюсь, что это поможет. 🙂

РЕДАКТИРОВАТЬ: Эта вики-страница http://wiki.apache.org/hadoop/WebApp_URLs перечислены ли эти URL-адреса

Отслеживание заданий можно найти по адресу http://localhost:50030
Отслеживание задач можно найти по адресу http://localhost:50060
Браузер NameNode / файловой системы / журнала можно найти по адресу http://localhost:50070
SecondaryNameNode можно найти по адресу http://localhost:50090

Я думаю, что localhost зависит от URL, который вы хотите просмотреть. Я не играл со всеми из них, обычно я просто использую 50030 и 50070; Оба из которых я указываю на свой namenode.

Комментарии:

1. Или вместо написания цикла while вы можете просто вызвать Job.waitForCompletion(true).

2. @Thomas Jungblut: Выводит ли `waitForCompletion (true) прогресс? AFAIK использование цикла позволяет контролировать выходные данные. Я запускаю 4 задания, и цикл позволяет контролировать порядок вывода. 🙂

3. да, он выводит текущий прогресс в стандартный вывод или регистрирует все, что настроено.

4. @Thomas Jungblut: Я не знал об этом. Полезно знать. 😀

5. Вау…. Большое спасибо за информацию. Я знал о веб-API, но я не хочу его использовать. Я хочу использовать это как часть моей программы. Поэтому я буду использовать последнее. Я использовал в качестве рабочей нагрузки, но я никогда не использовал API. Мне потребуется некоторое время, чтобы разобраться и вернуться, если у меня возникнут какие-либо проблемы. Большое спасибо за информацию. Я действительно ценю это!!