#java #hadoop #mapreduce
#java #hadoop #mapreduce
Вопрос:
Допустим, я использую функции cleanup() в Hadoop MapReduce. Как бы мне добавить в него механизм отслеживания прогресса, скажем, в процентах завершения, чтобы отобразить его в консоли?
Ответ №1:
Отсутствует реализация функции cleanup() для Mapper.java класс.
Когда задание Hadoop запускается из командной строки, на консоли выводится следующее.
11/10/31 18:15:50 ИНФОРМАЦИЯ о mapreduce.Задание: карта 0% уменьшить 0%
11/10/31 18:16:15 ИНФОРМАЦИЯ mapreduce.Задание: карта 50% уменьшить 0%
11/10/31 18:16:21 ИНФОРМАЦИЯ mapreduce.Задание: карта 100% уменьшить 0%
11/10/31 18:16:30 ИНФОРМАЦИЯ mapreduce.Задание: карта 100% уменьшить 100%
Код для приведенного выше находится в Job.java класс.
String report =
(" map " StringUtils.formatPercent(mapProgress(), 0)
" reduce "
StringUtils.formatPercent(reduceProgress(), 0));
if (!report.equals(lastReport)) {
LOG.info(report);
lastReport = report;
}
Код Mapper.cleanup() должен быть изменен, чтобы выводить прогресс на консоль и создавать jar-файл. Я не думаю, что в Hadoop есть поддержка OOB для очистки.