В предишния ни Hadoop блог ние ви предоставихме подробно описание на Hadoop InputFormat и OutputFormat . Сега ще разгледаме подробно Hadoop Counters. В този урок за Hadoop ще обсъдим какво представляват MapReduce Counters, какви са техните роли.
Най-накрая ще разгледаме и видовете броячи в Hadoop MapReduce. Като брояч на задачите на MapReduce, броячи на файловата система, броячи на FileInputFormat, Броячи на FileOutputFormat, броячи на задания в MapReduce, динамични броячи в Hadoop.
Hadoop MapReduce
Преди да започнем с Hadoop Counters, нека първо научим какво е Hadoop MapReduce?
MapReduce е слоят за обработка на данни на Hadoop. Той обработва големи структурирани и неструктурирани данни, съхранявани в HDFS. MapReduce също обработва огромно количество данни паралелно. Той прави това чрез разделяне на заданието (подадено задание) на набор от независими задачи (подзадача). В Hadoop MapReduce работи, като разделя обработката на фази:Карта иНамаляване .
- Фаза на картата- Това е първата фаза от процеса на данни. В тази фаза ние определяме цялата сложна логика/бизнес правила/скъп код.
- Намаляване на фазата- Това е втората фаза на обработка. В тази фаза ние определяме лека обработка като агрегиране/сумиране.
Какво е Hadoop Counters?
Брои в Hadoop са полезен канал за събиране на статистически данни за заданието MapReduce. Като за контрол на качеството или за ниво на приложение. Броячите са полезни и за диагностициране на проблеми.
Броячът представлява глобални броячи на Apache Hadoop, дефинирани или от рамката MapReduce. Всеки брояч в MapReduce се нарича с „Enum“. Освен това има дълга стойност.
Броячите на Hadoop потвърждават това:
- Чета и записва правилния брой байтове.
- Той е стартирал и успешно изпълнява правилен брой задачи или не.
- Броячите също така потвърждават, че количеството консумиран процесор и памет е подходящо за нашата работа и възли на клъстер или не.
Типове броячи в MapReduce
Два вида броячи MapReduce са:
- Вградени броячи
- Дефинирани от потребителя броячи/Персонализирани броячи
1. Вградени броячи в Hadoop MapReduce
Apache Hadoop поддържа някои вградени броячи за всяка работа. Тези броячи отчитат различни показатели. Има броячи за броя на байтовете и записите. Което ни позволява да потвърдим, че очакваното количество вложени средства се консумират и очакваното количество продукция се произвежда.
Hadoop Counters също са разделени на групи. Има няколко групи от вградените броячи. Всяка група също съдържа броячи на задачи или брояч на задачи.
Няколко групи от вградените броячи в Hadoop са както следва:
a) Брояч на задачи MapReduce
Броячът на задачите събира конкретна информация за задачите по време на тяхното изпълнение. Които включват броя на прочетените и записаните записи.
Например броячът MAP_INPUT_RECORDS е броячът на задачите. Той също така отчита входните записи, прочетени от всяка задача за карта.
b) Броячи на файловата система
Този брояч събира информация като брой байтове, прочетени и записани от файловата система. Името и описанието на броячите на файловата система са както следва:
- Прочетени байтове на файловата система – Броят байтове, прочетени от файловата система.
- Записани байтове на файловата система – Броят байтове, записани във файловата система.
c) Броячи на FileInputFormat
Тези броячи също събират информация за определен брой байтове, прочетени от задачи на карта чрез FileInputFormat.
г) Броячи на FileOutputFormat
Тези броячи също събират информация за определен брой байтове, записани от задачи за карти (за задачи само за карти) или намаляват задачи чрез FileOutputFormat.
e) Броячи на задания в MapReduce
Броячът за работа измерва статистическите данни на ниво длъжност. Той не измерва стойности, които се променят, докато дадена задача се изпълнява.
Например TOTAL_LAUNCHED_MAPS, пребройте броя на картографските задачи, които са били стартирани в хода на задание. Капитанът на приложението също измерва броячите на задания.
Така че не е необходимо те да се изпращат през мрежата, за разлика от всички други броячи, включително дефинирани от потребителя.
2. Потребителски дефинирани броячи или персонализирани броячи в Hadoop MapReduce
В допълнение към вградените броячи, Hadoop MapReduce позволява на потребителския код да дефинира набор от броячи. След това ги увеличава по желание в mapper или редуктор . Както в Java за дефиниране на броячи, които използва, „enum “ .
Работата може да дефинира произволен брой „изброявания“. Всяка с произволен брой полета. Името на enum е името на групата. Полетата на изброяването са имената на броячите.
a) Динамични броячи в Hadoop
Полетата на Java enum се дефинират по време на компилиране. Така че не можем да създаваме нови броячи по време на изпълнение, използвайки enums. И така, ние използваме динамични броячи за създаване на нови броячи по време на изпълнение. Но динамичният брояч не е дефиниран по време на компилиране.
Заключение
Следователно броячите проверяват дали е прочел и записал правилен брой байтове. Броячът също така измерва напредъка или броя на операциите, които се случват в заданието MapReduce.
Hadoop също така поддържа вградени броячи и дефинирани от потребителя броячи за измерване на напредъка, който се случва в заданието MapReduce.
Надяваме се, че този блог ви е помогнал. Ако имате някакви запитвания, свързани с Hadoop Counter, оставете коментар в раздел по-долу.