Я выполняю итеративные операции hadoop/mapreduce для анализа определенных данных. (apache hadoop version 1.1.0), и мне нужно знать количество выходных записей каждой задачи сокращения для запуска следующей итерации задания M/R. Я могу прочитать консолидированный счетчик после каждого задания M/R, но я не могу найти способ прочитать счетчик каждой задачи отдельно. Пожалуйста, посоветуйте мне об этом.
Choi
Вы можете использовать Jumbune debugger для этого, вы можете использовать свои собственные классы проверки и/или проверку на основе регулярных выражений на каждом преобразователе/редукторе. Jumbune дает хорошую детализацию в каждую фазу и структуру управления.
Запустите работу через jumbune, и это даст вам статистику по количеству записей, проходящих через ваш картограф или редуктор, и через каждую структуру управления в вашей работе. Более того, вы можете применить валидацию к записям, которые были отфильтрованы на ваших фазах или из них, чтобы дать вам точное представление.
Это не то, как работают счетчики: каждая задача передает свои показатели в центральную точку, поэтому нет способа узнать значения счетчика из отдельных задач.
Отсюда: http://www.thecloudavenue.com/2011/11/retrieving-hadoop-counters-in-mapreduce.html
Счетчики могут быть увеличены с помощью Reporter для старого API MapReduce или с использованием контекста с использованием нового API MapReduce. Эти счетчики отправляются в TaskTracker, и TaskTracker отправляет JobTracker, а JobTracker будет консолидировать счетчики для создания целостного представления для полного задания. Сводные счетчики не передаются обратно на карту и задачи "Уменьшить" с помощью JobTracker. Таким образом, задачи "Карта" и "Уменьшить" должны связаться с JobTracker, чтобы получить текущее значение счетчика.
Я полагаю, вы могли бы создать счетчик конкретных задач (например, префикс имени счетчика), но в итоге у вас будет много разных счетчиков, и, поскольку они разработаны для легкого веса, вы можете столкнуться с проблемами ( хотя пороговый уровень довольно высок: я однажды проверил предел, и узел разбился, когда я достиг чего-то вроде миллиона счетчиков!)