hadoop mapreduce tutorial with examples what is mapreduce
У цьому посібнику ми розберемося, що таке MapReduce, його переваги та як працює Hadoop Map Reduce з прикладами:
У попередньому підручнику ми дізналися про Hadoop HDFS та механізми читання та запису. Тепер давайте дослідимо інший компонент Hadoop, тобто MapReduce.
Давайте детально розглянемо наступне:
- Що таке MapReduce?
- Його переваги
- Який точний підхід MapReduce?
=> Завітайте сюди, щоб ознайомитись із ексклюзивними навчальними посібниками BigData.
Що ви дізнаєтесь:
Що таке MapReduce?
Давайте підемо далі і почнемо з Hadoop Components. Як пояснювалося раніше, є два основні компоненти Hadoop, тобто Hadoop HDFS та Hadoop Map Reduce.
Hadoop HDFS - це система розподілу файлів, яка використовується для зберігання величезної кількості Даних у декількох стійках.
Тут ми обговоримо блок обробки Hadoop, тобто MapReduce.
Наступне питання, яке виникає, це 'що таке Map Reduce і чому це потрібно?'
Hadoop MapReduce - це “Блок обробки” і використовуючи цей компонент, ми можемо обробляти великі дані, що зберігаються на Hadoop HDFS.
Але яка точна вимога? Навіщо нам потрібен цей компонент Hadoop?
Великі дані, що зберігаються на Hadoop HDFS, традиційно не зберігаються. Дані діляться на частини даних, що зберігаються у відповідних вузлах даних. Отже, ці дані не зберігаються в одному централізованому місці.
Запитання та відповіді співбесідника з питань забезпечення якості
Отже, власний клієнтський додаток, такий як Java, або будь-який подібний додаток не може обробляти дані у поточному форматі, і нам потрібна спеціальна структура, яка може обробляти фрагментовані блоки даних, що зберігаються у відповідних вузлах даних.
Обробка здійснюється за допомогою обробки Hadoop MapReduce.
Зменшення карти в двох словах
Наведена діаграма дає огляд Map Reduce, його особливості та використання.
Почнемо з додатків MapReduce та з того, де він використовується. Наприклад, він використовується для Класифікатори, індексація та пошук , та Створення Рекомендаційні двигуни на сайтах електронної комерції (Flipkart, Amazon та ін.) Він також використовується як Аналітика кількома компаніями.
Коли ми бачимо з точки зору особливостей, це a Модель програмування і може бути використаний для Великий розподілений Модель як Hadoop HDFS і має можливість паралельного програмування, що робить його дуже корисним.
Коли ми бачимо функції в Map Reduce, виконуються дві функції, тобто Map Function і функція Reduce.
Ця технологія була впроваджена великими організаціями, такими як Google, Yahoo, Facebook, а також була прийнята Apache Hadoop, як HDFS, PIG, HIVE, а також для зберігання даних або виконання та обробки великих даних за допомогою HBase, який також відомий як No-SQL.
Переваги Map-Reduce
Ця технологія має дві переваги.
# 1) Паралельна обробка
Найперша перевага - паралельна обробка. За допомогою Map Reduce ми завжди можемо обробляти дані паралельно.
Відповідно до наведеної діаграми, існує п’ять підпорядкованих машин, і деякі дані містяться на цих машинах. Тут дані обробляються паралельно за допомогою Hadoop Map Reduce і, отже, обробка стає швидкою.
Насправді тут відбувається те, що весь шматок даних ділиться Hadoop HDFS на блок HDFS, і Map-Reduce обробляє ці шматки даних, і таким чином обробка стає швидкою.
# 2) Місцезнаходження даних
Це одна універсальна річ, яку надає Hadoop MapReduce, тобто ми можемо обробляти дані там, де вони є.
Що це означає?
У попередньому підручнику HDFS ми зрозуміли, що дані, які ми перенесли в кластер Hadoop, поділяються на блоки HDFS, і ці блоки зберігаються у SlaveMachines або DataNodes. Map-Reduce сприймає обробку та логіку до відповідних підпорядкованих вузлів або вузлів даних, де дані знаходяться як блоки HDFS.
Обробка виконується на меншій кількості даних у кількох місцях паралельно. Це економить багато часу, а також пропускну здатність мережі, необхідну для переміщення великих даних з одного місця в інше.
Тільки пам’ятайте, що дані, які ми обробляємо, - це великі дані, розбиті на шматки, і якщо ми почнемо переміщати великі дані безпосередньо через відведені канали мережі у централізовану машину та обробляти їх, то це не дасть нам переваг, оскільки ми збираємось споживати всю пропускну здатність при переміщенні даних на централізований сервер.
Переваги:
Отже, використовуючи Hadoop MapReduce ми не просто робимо “Паралельна обробка” , ми також обробляємо дані до відповідних підпорядкованих вузлів або вузлів даних, де є фрагменти даних, а отже, ми також “Збереження великої пропускної здатності мережі” що дуже вигідно.
Нарешті, SlaveMachines закінчують з обробкою даних, що зберігаються на SlaveMachines, і вони відправляють результати назад на головну машину, оскільки результати не такі великі, як блоки, що зберігалися на SlaveMachines. Отже, він не буде використовувати велику пропускну здатність.
Підпорядковані машини відправляють результат назад на Головну машину, ці результати агрегуються разом, а кінцевий результат відправляється назад на Клієнтську машину, яка подала завдання.
Тут виникає одне питання - хто вирішує, які дані слід обробляти в якому вузлі даних?
Клієнт передає завдання менеджеру ресурсів, а менеджер ресурсів - це той, хто надає вказівки для виконання завдання у відповідних вузлах даних, де перебувають дані, і вирішує на основі найближчого вузла даних, який доступний, так що багато мереж Пропускна здатність не використовується.
Запитання та відповіді на інтерв’ю для android за 3 роки досвіду
Традиційні проти MapReduce Way
Щоб пояснити це, ми візьмемо реальну аналогію з кількістю заявок власників полісів страхової компанії, і всім було б відомо про політику страхових компаній, оскільки більшість великих страхових компаній мають свої філії в різних містах.
У цих відділеннях існує 'n' кількість людей, які подали заявку на політику страхування життя.
Давайте розглянемо сценарій, коли у нас є п’ять філій страхових компаній, куди люди приїжджають і подають документи на політику страхування життя. Зараз у нас також є одна штаб-квартира цієї страхової компанії, яка має всю інформацію про доступні та розташовані філії.
Однак, коли люди приходять і звертаються за полісом страхування життя у відповідних філіях A, B, C, D, E, заявки на поліси зберігаються у самих філіях, і ця інформація не передається в штаб-квартиру страхової компанії.
Традиційний спосіб:
Давайте подивимося, як люди традиційно застосовують цю політику. Для традиційного вирішення цієї проблеми всі заявки будуть переміщені до штаб-квартири страхової компанії, після чого розпочнеться процес подання заявки.
У цьому випадку нам потрібно перенести всі заявки до штаб-квартири страхової компанії, що є витратною справою, тобто ми повинні зібрати всі заявки з відділень страхової компанії та доставити їх до штаб-квартири страхової компанії.
Ось як пов'язані з цим витрати разом із величезними зусиллями у виконанні цієї діяльності.
Іншим аспектом цього є переобтяжена штаб-квартира страхової компанії, оскільки вона повинна обробляти всі заявки, які люди подавали на поліси у відповідних філіях.
Оскільки страхова компанія обробляє заявки, подані у всіх філіях, це займе багато часу. Зрештою, цей процес працює не дуже добре.
MapReduce Way
Давайте подивимося, як Map-Reduce вирішує цю проблему.
MapReduce слідує локації даних, тобто він не збирається надсилати всі заявки до штаб-квартири страхової компанії, натомість він паралельно здійснюватиме обробку заявок у відповідних філіях.
Після обробки заявок, застосованих до кожного відділення, вони відправляють оброблені дані до штаб-квартири страхової компанії.
Тепер штаб-квартирі страхової компанії достатньо звести кількість оброблених заявок, надісланих із відповідних філій, та зберегти деталі у відповідній базі даних або Центрі зберігання.
Таким чином, обробка буде дуже простою та швидкою, і Страхувальники отримують вигоди в найкоротші терміни.
Детально зменшити карту
У нашому попередньому прикладі ми мали вхідні дані (програми), які розподілялись між різними гілками, і кожен вхід оброблявся відповідною функцією карти.
Ми знаємо, що MapReduce має дві функції, тобто функцію карти та функцію зменшення.
Частина обробки, яка була виконана у відповідних гілках, виконувалась функцією Map. Отже, кожен вхід (додаток) у кожному відділенні оброблявся за допомогою функції Map, після чого оброблені деталі надсилались до штаб-квартири страхової компанії, а частина агрегування виконувалась функцією зменшення.
Агреговані оброблені деталі програми подаються як вихідні дані.
Так сталося у нашому попередньому прикладі. Весь процес був розділений на Завдання карти та Зменшити завдання.
Завдання карти отримує вхідні дані, і вихід завдання завдання надається задачі зменшення як вхід, і ця задача зменшення надає результат, нарешті, клієнту.
Щоб зрозуміти це краще, давайте розберемося з анатомією MapReduce.
Завдання MapReduce працює на парі ключ-значення, тому, коли ми говоримо про карту, карта приймає вхідні дані як ключ-значення і надає результати у вигляді списку ключ-значення. Цей список ключ-значення проходить фазу перетасовки, а введення ключа та список значень надходять до редуктора.
Нарешті, Редуктор дає нам список пар ключ-значення.
Приклад MapReduce - процес підрахунку слів
Візьмемо ще один приклад, тобто обчислення кількості слів за способом MapReduce. Цей приклад такий самий, як і вступний приклад програмування на Java, тобто “Hello World”.
Відповідно до діаграми, у нас був Вхід, і цей Вхід ділиться або ділиться на різні Входи. Отже, цей процес називається розділенням входів, і весь вхід розділяється на розділення даних на основі нового символу рядка.
Самий перший рядок - це перший вхід, тобто Зменшити карту Bigdata Hadoop , другий рядок - це другий вхід, тобто MapReduce Hive Bigdata , аналогічно, для третього вводу - це Hiveop Hadoop Hive MapReduce .
Переходимо до наступної фази, тобто фази картографування. Тепер на етапі картографування ми створюємо список пар ключ-значення. Отже, введення - це ключ і значення, тут ключ - це не що інше, як зміщення номера рядка. Номер рядка - це ключ, а весь рядок - значення.
Отже, для рядка 1 зміщення - це ключ, а значення - Зменшити карту Bigdata Hadoop . У реальному житті номер рядка або зсув - це шістнадцяткове число, однак, щоб полегшити його, ми будемо розглядати його лише як число 1 або 2.
Отже, рядок 1 буде ключовим, а весь рядок - значенням. Коли він проходить через функцію відображення, те, що робитиме відображення, це створить список пар ключ-значення. Наприклад, Бігдати , отже, що функція буде робити, вона буде читати кожне слово рядка і позначатиме одне (1) після коми.
Він позначить один (1) як значення; подібно до Bigdata, 1 Hadoop, 1 і MapReduce, 1 . Тут питання в тому, чому ми ставимо по одному (1) після кожного слова?
Це тому, що Бігдати це одна кількість Бігдата, 1 . Так само, Hadoop, 1 і MapReduce, 1 мають один підрахунок, тому ми позначаємо один (1) як Значення. Таким же чином для другого рядка або, скажімо, рядка 2 ми маємо, MapReduce Hive Bigdata .
Отже, таким же чином, функція відображення знову створює для неї список пар ключ-значення, і, відповідно до підрахунку, список пар ключ-значення буде MapReduce, 1 вулик, 1 і Бігдата, 1 .
Ми отримаємо те саме в результаті функції відображення для рядка 3, тобто Вулик, 2 Hadoop, 1 і MapReduce, 1 .
Перейдемо до фази перестановки, на цій фазі для кожного Ключа є підготовлений список. Фаза перетасовки знайде зовнішній вигляд Ключа Бігдати і він додасть значення до списку. Тож давайте подивимось, що тут відбувається.
Як ми можемо бачити дві вхідні стрілки, перша стрілка надходить зі списку 1, а інша стрілка йде зі списку 2, тож результат буде Bigdata, (1,1) .
Подібно, коли ми бачимо слово Hadoop , знову для Hadoop ще один список буде підготовлений для цінностей. Як ми бачимо, дві вхідні стрілки вказують на перемішування, що означає це слово Hadoop буде обрано зі списку 2 та списку 3 відповідно, тобто остаточний результат після перестановки буде Hadoop, (1, 1) .
Таким же чином ми отримаємо решту слів, як Вулик, (1, 1, 1) і MapReduce, (1, 1, 1) разом із їхнім списком цінностей або скажімо список Count відповідно до наявності слів у відповідних списках.
Тепер переходимо до Фази Зменшення, на цій фазі ми починаємо агрегування Значень, які були присутні в списку, щодо кожного Ключа. Отже для Bigdata, у списку були два значення, тобто (одинадцять) таким чином подання цих цінностей буде здійснюватися так Бігдата, 2 .
Так само для Hadoop значення буде сумою, тобто (одинадцять) подання буде Hadoop, 2 .
Таким же чином для Вулик і MapReduce, подання на функцію скорочення буде Вулик, 3 і MapReduce, 3 відповідно.
Нарешті, остаточний результат буде відправлений назад Клієнту, як показано на діаграмі нижче «Загальний процес підрахунку слів MapReduce»
Загальний процес MapReduce Word Count
найкращий завантажувач музики mp3 для android
Ось як працює весь процес підрахунку слів, коли ви використовуєте MapReduce Way.
Висновок
У цьому підручнику ми дізналися наступне:
- Hadoop Map Reduce - це “Блок обробки” Хадупа.
- Для обробки великих даних, що зберігаються Hadoop HDFS, ми використовуємо Hadoop Map Reduce.
- Він використовується в пошуку та індексації, класифікації, рекомендаціях та аналітиці.
- Він має такі функції, як модель програмування, паралельне програмування та великомасштабна розподілена модель.
- Проектуючий шаблон MapReduce: Узагальнення, класифікація найкращих записів, сортування та аналітика, такі як Приєднання та відбір.
- Він має лише дві функції тобто функція Mapper та функція редуктора.
- Паралельна обробка та локалізація даних - це хороші переваги Hadoop MapReduce.
- Процес MapReduce розділений на шість фаз, тобто ВВЕДЕННЯ, РОЗДІЛЕННЯ, КАРТУВАННЯ, ЗМЕНШЕННЯ, ЗМЕНШЕННЯ і КІНЦЕВИЙ РЕЗУЛЬТАТ
Це все для цього підручника. У наступних підручниках ми розглянемо:
- Як MapReduce працює з YARN та її компонентами?
- Процес застосування Пряжі.
- Що таке Spark і в чому різниця між Hadoop і Spark?
=> Перевірте ВСІ підручники з BigData тут.
Рекомендована література
- Що таке Hadoop? Підручник Apache Hadoop для початківців
- Підручник з Python DateTime із прикладами
- Підручник з Data Mart - типи, приклади та реалізація Data Mart
- Вимірна модель даних у сховищі даних - Підручник із прикладами
- Підручник з довжини масиву Java із прикладами коду
- Підручник з великих даних для початківців | Що таке великі дані?
- Підручник зі створення сценаріїв Unix Shell із прикладами
- Знайти елемент селену за допомогою підручника з тексту з прикладами