Вступ до MapReduce
MapReduce - це обчислювальна складова Hadoop Framework для легкого запису програм, які обробляють велику кількість даних паралельно та зберігаються на великих кластерах дешевих товарних машин надійно та невідмовно. У цій темі ми дізнаємось про те, як працює MapReduce?
MapReduce може виконувати розподілені та паралельні обчислення, використовуючи великі набори даних у великій кількості вузлів. Завдання MapReduce зазвичай розбиває набори вхідних даних, а потім обробляє кожен з них незалежно завданнями Map повністю паралельно. Потім вихід сортується та вводиться для зменшення завдань. Як введення, так і вихідні завдання зберігаються у файлових системах. Завдання плануються та контролюються рамками.
Як працює MapReduce?
Архітектура MapReduce містить два основні компоненти як служби Daemon, відповідальні за виконання завдань картографування та скорочення, моніторинг та повторне виконання завдань при відмові. У Hadoop 2 диспетчер ресурсів та менеджер вузлів - це послуги демона. Коли клієнт завдання подає завдання MapReduce, ці демони вступають у дію. Вони також відповідають за паралельну обробку та функції відмовостійкості завдань MapReduce.
У програмі Hadoop 2 управління ресурсами та планування робочих місць або функції моніторингу відокремлюються YARN (ще одним переговорником ресурсів) як різні демон. У порівнянні з Hadoop 1 з інструментом відстеження роботи та відстеженням завдань, Hadoop 2 містить глобальний менеджер ресурсів (RM) та майстри програм (AM) для кожної програми.
- Клієнт роботи подає завдання менеджеру ресурсів.
- Планувальник YARN Resource Manager відповідає за координацію розподілу ресурсів кластеру серед запущених програм.
- Менеджер вузлів YARN працює на кожному вузлі та здійснює управління ресурсами на рівні вузла, координуючись із менеджером ресурсів. Він запускає і контролює обчислювальні контейнери на машині на кластері.
- Майстер додатків допомагає ресурсам диспетчера ресурсів і використовує диспетчер вузлів для запуску і координації завдань MapReduce.
- HDFS зазвичай використовується для обміну файлами завдань між іншими об'єктами.
Фази моделі MapReduce
Модель MapReduce має три основні та одну факультативну фазу:
1. Картограф
- Це перша фаза програмування MapReduce і містить логіку кодування функції картографа.
- Умовна логіка застосовується до 'n' кількості блоків даних, розподілених по різних вузлах даних.
- Функція Mapper приймає в якості введення пар ключ-значення як (k, v), де ключ представляє зміщену адресу кожного запису, а значення представляє весь вміст запису.
- Вихід фази Mapper також буде у форматі ключ-значення як (k ', v').
2. Перемішати і сортувати
- Вихід різних картографів (k ', v'), потім переходить у фазу Shuffle і Sort.
- Усі повторювані значення видаляються, а різні значення групуються разом на основі подібних ключів.
- Вихід фази Shuffle and Sort буде знову парами ключ-значення як ключ і масив значень (k, v ()).
3. Редуктор
- Вихід фази переміщення і сортування (k, v ()) буде входом фази редуктора.
- У цій фазі виконується логіка функції редуктора і всі значення агрегуються проти відповідних клавіш.
- Редуктор консолідує виводи різних картографів і обчислює підсумковий результат роботи.
- Потім кінцевий вихід записується в один файл у каталозі виводу HDFS.
4. Комбайнер
- Це необов'язковий етап у моделі MapReduce.
- Фаза комбінатора використовується для оптимізації продуктивності завдань MapReduce.
- У цій фазі різні виводи картографів локально зменшуються на рівні вузла.
- Наприклад, якщо різні виводи картографа (k, v), що надходять з одного вузла, містять дублікати, вони об'єднуються, тобто локально зменшуються як єдиний (k, v ()) вихід.
- Ця фаза робить роботу фази переміщення та сортування ще швидшою, тим самим забезпечуючи додаткову продуктивність у завданнях MapReduce.
Всі ці фази у завданні MapReduce можна зобразити як показано нижче:
Наприклад, логіка MapReduce для пошуку кількості слів у масиві слів може бути показана, як показано нижче:
Фрукти_аррай = (яблуко, апельсин, яблуко, гуава, виноград, апельсин, яблуко)
- Фаза Mapper токенізує вхідний масив слів на 'n' кількість слів, щоб дати вихід як (k, v). Наприклад, розглянемо "яблуко". Виведення Mapper буде (apple, 1), (apple, 1), (apple, 1).
- Перемішайте та сортуйте, приймайте вивідник (k, v) і групуйте всі значення відповідно до їхніх ключів як (k, v ()). тобто (яблуко, (1, 1, 1)).
- Фаза редуктора приймає вихід Shuffle і сортування та дає сукупність значень (apple, (1 + 1 + 1)), що відповідають їх клавішам. тобто (яблуко, 3).
Спекулятивне виконання роботи MapReduce
У швидкості MapReduce переважає найповільніше завдання. Отже, щоб збільшити швидкість, новий картограф буде працювати над тим же набором даних одночасно. Незалежно від виконання завдання, перший вважається кінцевим результатом, а другий - вбитим. Це техніка оптимізації.
Переваги MapReduce
Тут про переваги MapReduce згадуємо нижче
1. Відмовостійкість
- У середині завдання зменшення карти, якщо машина, що містить кілька блоків даних, не працює, архітектура обробляє помилку.
- Він розглядає повторювані копії блоків в альтернативних машинах для подальшої обробки.
2. Стійкість
- Кожен вузол періодично оновлює свій статус головним вузлом.
- Якщо підлеглий вузол не надсилає своє повідомлення, головний вузол переназначає поточно виконується завдання цього підлеглого вузла іншим доступним вузлам кластеру.
3. Швидкий
- Обробка даних швидка, оскільки MapReduce використовує HDFS як систему зберігання.
- MapReduce займає кілька хвилин для обробки терабайт неструктурованих великих обсягів даних.
4. Паралельна обробка
- Завдання MapReduce паралельно обробляють кілька фрагментів одних і тих же наборів даних шляхом поділу завдань.
- Це дає перевагу виконання завдання за менший час.
5. Доступність
- Кілька реплік одних і тих же даних надсилаються до численних вузлів мережі.
- Таким чином, у разі будь-якого збою, інші копії легко доступні для обробки без втрат.
6. Масштабованість
- Hadoop - це дуже масштабована платформа.
- Традиційні системи RDBMS не можна масштабувати відповідно до збільшення обсягу даних.
- MapReduce дозволяє запускати програми з величезної кількості вузлів, використовуючи терабайти та петабайти даних.
7. Економічно
- Функція масштабування Hadoop разом із програмуванням MapReduce дозволяє зберігати та обробляти дані дуже ефективно та доступно.
- Економія витрат може бути величезною, як цифри сотень для терабайт даних.
Висновок - як працює MapReduce
Сучасні дані все більше рухаються у бік неструктурованого типу, а величезний, звичайний варіант обробки даних, як RDBMS, є ще складнішим, трудомістким та дорогим. Але програмування Hadoop MapReduce набагато ефективніше, безпечніше та швидше в обробці великих наборів даних навіть терабайт чи петабайт.
Рекомендовані статті
Це посібник із роботи MapReduce. Тут ми обговорюємо Фази моделі MapReduce з перевагами та як це працює. Ви також можете переглянути наступні статті, щоб дізнатися більше -
- Компоненти екосистеми Hadoop
- Алгоритми зменшення карти
- Що таке MapReduce в Hadoop?
- Питання для інтерв'ю MapReduce