Що таке MapReduce у Hadoop? Великі дані Archiтектура
Що таке MapReduce у Hadoop?
MapReduce це програмна основа та модель програмування, яка використовується для обробки величезних обсягів даних. MapReduce робота програми в два етапи, а саме Map і Reduce. Завдання відображення пов’язані з розділенням і відображенням даних, тоді як завдання «Зменшення» перемішують і зменшують дані.
Hadoop може запускати програми MapReduce, написані різними мовами: Java, Рубі, Python та C++. Програми Map Reduce у хмарних обчисленнях є паралельними за своєю природою, тому дуже корисні для виконання великомасштабного аналізу даних за допомогою кількох машин у кластері.
Входом для кожної фази є ключ-значення пари. Крім того, кожен програміст повинен вказати дві функції: функція карти та зменшити функцію.
MapReduce Archiтектура великих даних пояснюється на прикладі
Весь процес проходить через чотири фази виконання, а саме: розділення, відображення, перетасування та зменшення.
У цьому посібнику з MapReduce давайте розберемося на прикладі MapReduce –
Вважайте, що у вас є такі вхідні дані для вашого MapReduce in Програма великих даних
Welcome to Hadoop Class Hadoop is good Hadoop is bad
Остаточним результатом завдання MapReduce є
поганий | 1 |
Клас | 1 |
добре | 1 |
Hadoop | 3 |
is | 2 |
до | 1 |
ласкаво просимо | 1 |
Дані проходять наступні етапи MapReduce у Big Data
Вхідні розділення:
Вхідні дані для завдання MapReduce у великих даних поділяються на фрагменти фіксованого розміру поділ входу Розділення вхідних даних — це частина вхідних даних, яка використовується однією картою
Карт
Це найперший етап у виконанні програми map-reduce. На цьому етапі дані кожного розбиття передаються до функції відображення для отримання вихідних значень. У нашому прикладі завдання фази відображення полягає в тому, щоб підрахувати кількість входжень кожного слова з вхідних поділів (додаткову інформацію про вхідні поділи наведено нижче) і підготувати список у формі
Перемішування
Ця фаза споживає вихідні дані фази зіставлення. Його завдання полягає в консолідації відповідних записів із вихідних даних фази картографування. У нашому прикладі однакові слова об’єднані в клуби разом із відповідною частотою.
Зменшення
На цій фазі агрегуються вихідні значення з фази перетасування. Ця фаза поєднує значення з фази Shuffling і повертає одне вихідне значення. Коротше кажучи, на цьому етапі підсумовується повний набір даних.
У нашому прикладі ця фаза агрегує значення з фази перетасування, тобто обчислює загальну кількість входжень кожного слова.
MapReduce Archiдетально пояснена структура
- Для кожного розбиття створюється одне завдання картографування, яке потім виконує функцію відображення для кожного запису в розбиванні.
- Завжди вигідно мати кілька розділень, оскільки час, витрачений на обробку розділення, невеликий порівняно з часом, необхідним для обробки всього вхідного даних. Коли розбиття менші, обробку краще завантажувати збалансовано, оскільки ми обробляємо розбиття паралельно.
- Однак небажано також мати надто малі розколи. Коли розбиття надто малі, перевантаження, пов’язане з керуванням розбиттям і створенням завдання карти, починає домінувати над загальним часом виконання завдання.
- Для більшості завдань краще зробити розмір розділення рівним розміру блоку HDFS (за замовчуванням він становить 64 МБ).
- Виконання завдань карти призводить до запису вихідних даних на локальний диск на відповідному вузлі, а не в HDFS.
- Причиною вибору локального диска замість HDFS є уникнення реплікації, яка має місце під час роботи сховища HDFS.
- Вихід карти є проміжним виходом, який обробляється завданнями зменшення для отримання остаточного виходу.
- Після завершення роботи вихідні дані карти можна викинути. Таким чином, зберігання його в HDFS з реплікацією стає надмірним.
- У разі збою вузла, перед тим, як вихід карти буде використано завданням зменшення, Hadoop повторно запускає завдання карти на іншому вузлі та повторно створює вихід карти.
- Завдання Reduce не працює з концепцією локальності даних. Вихідні дані кожного завдання карти передаються в завдання зменшення. Вихідні дані карти передаються на машину, де виконується завдання зменшення.
- На цій машині вихідні дані об’єднуються, а потім передаються до визначеної користувачем функції зменшення.
- На відміну від вихідних даних карти, дані зменшення зберігаються в HDFS (перша репліка зберігається на локальному вузлі, а інші репліки зберігаються на автономних вузлах). Отже, пишемо зменшити вихід
Як MapReduce організовує роботу?
У цьому посібнику з MapReduce ми дізнаємося, як працює MapReduce
Hadoop ділить роботу на завдання. Є два види завдань:
- Завдання на карті (Поділи та відображення)
- Зменшіть завдання (Перемішування, зменшення)
як зазначено вище.
Повний процес виконання (виконання завдань Map і Reduce, обох) контролюється двома типами сутностей, які називаються
- Jobtracker: Діє як a майстер (відповідає за повне виконання наданого завдання)
- Трекери кількох завдань: Діє як раби, кожен з них виконує роботу
На кожне завдання, подане на виконання в системі, є одне Jobtracker що проживає на Namenode і є кілька трекерів завдань які проживають на Datanode.
- Робота поділяється на кілька завдань, які потім виконуються на кількох вузлах даних у кластері.
- Відповідальність засобу відстеження завдань полягає в тому, щоб координувати діяльність шляхом планування виконання завдань на різних вузлах даних.
- Потім за виконанням окремого завдання слідкуватиме засіб відстеження завдань, який знаходиться на кожному вузлі даних, що виконує частину завдання.
- Відповідальність засобу відстеження завдань полягає в тому, щоб надіслати звіт про виконання до засобу відстеження завдань.
- Крім того, трекер завдань періодично посилає "серцебиття" подати сигнал Jobtracker, щоб повідомити його про поточний стан системи.
- Таким чином, Job Tracker відстежує загальний прогрес кожної роботи. У разі збою завдання засіб відстеження завдань може перепланувати його на інший засіб відстеження завдань.