В този Hadoop блог, ние ще ви предоставим от край до край потока за изпълнение на заданието на MapReduce. Тук ще опишем подробно всеки компонент, който е част от MapReduce.
Този блог ще ви помогне да отговорите как работи Hadoop MapReduce, как протичат данни в MapReduce, как се изпълнява задачата на Mapreduce в Hadoop?
Какво е MapReduce?
Hadoop MapReduce е слоят за обработка на данни. Той обработва огромното количество структурирани и неструктурирани данни, съхранявани в HDFS. MapReduce обработва данни паралелно, като разделя заданието на набор от независими задачи. Така паралелната обработка подобрява скоростта и надеждността.
Обработката на данни в Hadoop MapReduce се извършва в 2 фази – Карта и Фаза Редуциране.
- Фаза на картата- Това е първата фаза на обработка на данни. В тази фаза ние определяме цялата сложна логика/бизнес правила/скъп код.
- Намаляване на фазата- Това е втората фаза на обработка. В тази фаза ние определяме лека обработка като агрегиране/сумиране.
Стъпки от потока за изпълнение на задание MapReduce
MapReduce обработва данните на различни фази с помощта на различни компоненти. Нека да обсъдим стъпките за изпълнение на заданието в Hadoop.
1. Входни файлове
Във входните файлове се съхраняват данни за заданието MapReduce. ВHDFS , входните файлове се намират. Форматът на входните файлове е произволен. Могат да се използват и базирани на ред лог файлове и двоичен формат.
2. InputFormat
След това InputFormat дефинира как да се разделят и четат тези входни файлове. Той избира файловете или други обекти за въвеждане. InputFormat създава InputSplit.
3. InputSplits
Той представлява данните, които ще бъдат обработени от отделен Mapper . За всяко разделяне се създава една задача за карта. По този начин броят на картографските задачи е равен на броя на InputSplits. Framework разделянето се разделя на записи, които се обработват.
4. RecordReader
Той комуникира с inputSplit. И след това преобразува данните в двойки ключ-стойност подходящ за четене от Mapper. RecordReader по подразбиране използва TextInputFormat за преобразуване на данни в двойка ключ-стойност.
Той комуникира с InputSplit до завършване на четенето на файла. Той присвоява отместване на байта на всеки ред във файла. След това тези двойки ключ-стойност се изпращат допълнително към картографа за по-нататъшна обработка.
5. Картограф
Той обработва входен запис, произведен от RecordReader, и генерира междинни двойки ключ-стойност. Междинният изход е напълно различен от входната двойка. Резултатът от картографа е пълната колекция от двойки ключ-стойност.
Hadoop Framework не съхранява изхода на mapper на HDFS. Не се съхранява, тъй като данните са временни и записването на HDFS ще създаде ненужни множество копия. След това Mapper предава изхода на комбинатора за по-нататъшна обработка.
4. Комбинатор
Combiner е мини-редуктор, който извършва локално агрегиране на изхода на картографа. Той минимизира преноса на данни между картограф и редуктор. Така че, когато функционалността на обединителя завърши, рамката предава изхода на разделителя за по-нататъшна обработка.
5. Разпределител
Partitioner възниква, ако работим с повече от един редуктор. Той взема изхода на комбинатора и извършва разделяне.
Разделянето на изхода става на базата на ключа в MapReduce. Чрез хеш функция ключът (или подмножество от ключа) извлича дяла.
Въз основа на стойността на ключа в MapReduce се извършва разделяне на всеки изход от комбайн. И тогава записът със същата стойност на ключа отива в същия дял. След това всеки дял се изпраща към редуктор.
Разделянето при изпълнение на MapReduce позволява равномерно разпределение на изхода на картата върху редуктора.
6. Разбъркване и сортиране
След разделянето изходът се разбърква към възела за намаляване. Разместването е физическото движение на данните, което се извършва през мрежата. Тъй като всички картографи завършват и разбъркват изхода на редукторните възли.
След това рамката обединява този междинен изход и сортиране. След това се предоставя като вход за намаляване на фазата.
7. Редуктор
След това редукторът приема набор от междинни двойки ключ-стойност, произведени от картографите като вход. След това стартира функция за намаляване на всеки от тях, за да генерира изхода.
Изходът на редуктора е крайният изход. След това рамката съхранява изхода на HDFS.
8. RecordWriter
Той записва тези изходни двойки ключ-стойност от фазата на редуктор в изходните файлове.
9. Изходен формат
OutputFormat дефинира начина как RecordReader записва тези изходни двойки ключ-стойност в изходни файлове. И така, неговите екземпляри, предоставени от файловете за запис на Hadoop в HDFS. Така OutputFormat екземпляри записват крайния изход на редуктор на HDFS.
Заключение
Научихме стъпка по стъпка потока на изпълнение на заданието MapReduce. Надявам се този блог да ви помогне много да разберете как работи MapReduce.
Ако все още имате запитване, свързано с потока на изпълнение на задание MapReduce, така че можете да споделите с нас в секцията за коментари, дадена по-долу. Ще направим всичко възможно да ги разрешим.