Що таке MapReduce в Hadoop?
MapReduce - це програмна база та модель програмування, яка використовується для обробки величезних обсягів даних. Програма MapReduce працює у два етапи, а саме: Map і Reduce. Завдання на карті мають справу з розбиттям та зіставленням даних, тоді як Зменшити перемішування завдань та зменшити дані.
Hadoop здатний запускати програми MapReduce, написані різними мовами: Java, Ruby, Python та C ++. Програми Map Reduce у хмарних обчисленнях мають паралельний характер, отже, дуже корисні для проведення широкомасштабного аналізу даних за допомогою декількох машин у кластері.
Вхідними даними для кожної фази є пари ключ-значення . Крім того, кожному програмісту потрібно вказати дві функції: функцію відображення та функцію зменшення .
У цьому підручнику Hadoop MapReduce ви дізнаєтесь-
- Що таке MapReduce в Hadoop?
- Детально пояснено архітектуру MapReduce у великих даних
- Архітектура MapReduce детально пояснена
- Як MapReduce організовує роботу?
Детально пояснено архітектуру MapReduce у великих даних
Весь процес проходить чотири фази виконання, а саме, розбиття, відображення, перетасовку та зменшення.
Тепер у цьому підручнику MapReduce давайте розберемося на прикладі MapReduce -
Зверніть увагу, що у вас є наступні вхідні дані для вашого MapReduce у програмі великих даних
Welcome to Hadoop ClassHadoop is goodHadoop is bad
Остаточним результатом завдання MapReduce є
погано | 1 |
Клас | 1 |
добре | 1 |
Hadoop | 3 |
є | 2 |
до | 1 |
Ласкаво просимо | 1 |
Дані проходять наступні фази MapReduce у великих даних
Вхідні розподіли:
Вхід до завдання MapReduce у великих даних ділиться на частини фіксованого розміру, які називаються вхідними розбиттями. Вхідний розбиття - це частина вхідних даних, яка споживається однією картою
Картування
Це найперший етап виконання програми зменшення карти. На цьому етапі дані в кожному розбитті передаються у функцію відображення для отримання вихідних значень. У нашому прикладі робота етапу відображення полягає в тому, щоб підрахувати кількість випадків кожного слова із вхідних розбитків (детальніше про вхідне розділення наведено нижче) та підготувати список у вигляді <слово, частота>
Перетасовка
Ця фаза споживає результати фази картографування. Його завдання полягає у консолідації відповідних записів з результатів фази картографування. У нашому прикладі ті самі слова об’єднуються разом із відповідною частотою.
Зменшення
На цій фазі вихідні значення з фази перемішування агрегуються. Ця фаза поєднує значення з фази перетасовки і повертає одне вихідне значення. Коротше кажучи, цей етап узагальнює повний набір даних.
У нашому прикладі ця фаза агрегує значення з фази перемішування, тобто обчислює загальну кількість випадків кожного слова.
Архітектура MapReduce детально пояснена
- Для кожного розбиття створюється одне завдання карти, яке потім виконує функцію відображення кожного запису в розбитті.
- Завжди вигідно мати кілька розбиттів, оскільки час, необхідний для обробки розбиття, невеликий порівняно з часом, необхідним для обробки всього вводу. Коли розщеплення менше, обробку краще завантажувати збалансовано, оскільки ми обробляємо розщеплення паралельно.
- Однак також не бажано мати занадто малі розміри розколів. Коли розбиття занадто малі, перевантаження управління розбиттями та створенням завдання карт починають домінувати над загальним часом виконання завдання.
- Для більшості завдань краще зробити розмір розділення, рівний розміру блоку HDFS (який за замовчуванням становить 64 МБ).
- Виконання завдань карти призводить до запису виводу на локальний диск на відповідному вузлі, а не в HDFS.
- Причиною вибору локального диска над HDFS є уникнення реплікації, яка має місце у випадку роботи магазину HDFS.
- Висновок карти - це проміжний результат, який обробляється завданнями зменшення для отримання кінцевого результату.
- Після завершення завдання вихід карти можна викинути. Отже, зберігання його в HDFS з реплікацією стає надмірним.
- У разі відмови вузла, перш ніж вихід карти буде витрачений завданням зменшення, Hadoop повторно виконує завдання карти на іншому вузлі та відтворює вихід карти.
- Завдання "Зменшити" не працює над концепцією локалізації даних. Вихідні дані кожного завдання карти подаються до завдання зменшення. Висновок карти передається на машину, де запущено завдання зменшення.
- На цій машині вихідні дані об’єднуються, а потім передаються користувацькій функції зменшення.
- На відміну від виводу карти, зменшення виведення зберігається у HDFS (перша репліка зберігається на локальному вузлі, а інші репліки - на позареєстрових вузлах). Отже, написання зменшуваного виводу
Як MapReduce організовує роботу?
Тепер у цьому посібнику MapReduce ми дізнаємось, як працює MapReduce
Hadoop розподіляє роботу на завдання. Існує два типи завдань:
- Завдання на карті (Розбиття та зіставлення)
- Скоротити завдання (перетасовка, зменшення)
як зазначено вище.
Повний процес виконання (виконання завдань Map і Reduce, обидва) контролюється двома типами сутностей, які називаються a
- Jobtracker : діє як майстер (відповідальний за повне виконання поданої роботи)
- Кілька відстежувачів завдань : діє як раб, кожен з них виконує роботу
Для кожного завдання, поданого на виконання в системі, існує один Jobtracker, який знаходиться в Namenode, і існує безліч трекерів, які працюють у Datanode .
- Завдання ділиться на кілька завдань, які потім запускаються на декількох вузлах даних у кластері.
- Відповідальність за відстеження завдань - координувати діяльність, плануючи завдання для запуску на різних вузлах даних.
- Потім виконання індивідуального завдання полягає у догляді за засобом відстеження завдань, який знаходиться на кожному вузлі даних, що виконує частину завдання.
- Обов'язок відстежувача завдань - надсилати звіт про хід до відстежувача завдань.
- Крім того, відстежувач завдань періодично надсилає сигнал "серцебиття" на Jobtracker, щоб повідомити його про поточний стан системи.
- Таким чином, відстежувач вакансій відстежує загальний прогрес кожної роботи. У разі відмови завдання, відстежувач завдань може перенести його на інший трекер завдань.