#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. Мне потребуется некоторое время, чтобы разобраться и вернуться, если у меня возникнут какие-либо проблемы. Большое спасибо за информацию. Я действительно ценю это!!