Jak działa MapReduce? - Działanie, fazy i zalety MapReduce

Spisie treści:

Anonim

Wprowadzenie do MapReduce

MapReduce to element obliczeniowy Hadoop Framework do łatwego pisania aplikacji, które przetwarzają duże ilości danych równolegle i są przechowywane w dużych skupiskach tanich maszyn towarowych w niezawodny i odporny na uszkodzenia sposób. W tym temacie dowiemy się, jak działa MapReduce?

MapReduce może wykonywać obliczenia rozproszone i równoległe przy użyciu dużych zestawów danych dla dużej liczby węzłów. Zadanie MapReduce zwykle dzieli wejściowe zestawy danych, a następnie przetwarza każde z nich niezależnie przez zadania mapy w całkowicie równoległy sposób. Dane wyjściowe są następnie sortowane i wprowadzane w celu ograniczenia zadań. Zarówno dane wejściowe, jak i wyjściowe zadania są przechowywane w systemach plików. Zadania są planowane i monitorowane przez środowisko.

Jak działa MapReduce?

Architektura MapReduce zawiera dwa podstawowe komponenty jako usługi Daemon odpowiedzialne za uruchamianie zadań mapowania i reduktora, monitorowanie i ponowne wykonywanie zadań w przypadku awarii. W Hadoop 2 i następnych Menedżer zasobów i Menedżer węzłów to usługi demonów. Gdy klient zadania prześle zadanie MapReduce, demony te zaczynają działać. Odpowiadają również za przetwarzanie równoległe i funkcje odporności na uszkodzenia zadań MapReduce.

W Hadoop 2 funkcje zarządzania zasobami oraz planowania lub monitorowania zadań są rozdzielone przez YARN (Yet Another Negotiator Resource) jako różne demony. W porównaniu do Hadoop 1 z modułem Job Tracker i Task Tracker, Hadoop 2 zawiera globalny menedżer zasobów (RM) i wzorce aplikacji (AM) dla każdej aplikacji.

  • Klient zleceń przesyła zlecenie do Menedżera zasobów.
  • Program planujący Menedżera zasobów YARN jest odpowiedzialny za koordynację alokacji zasobów klastra między uruchomionymi aplikacjami.
  • Menedżer węzłów YARN działa na każdym węźle i zarządza zasobami na poziomie węzła, koordynując z menedżerem zasobów. Uruchamia i monitoruje kontenery obliczeniowe na komputerze w klastrze.
  • Application Master pomaga zasobom z Resource Managera i używa Node Managera do uruchamiania i koordynowania zadań MapReduce.

  • HDFS jest zwykle używany do udostępniania plików zadań innym podmiotom.

Fazy ​​modelu MapReduce

Model MapReduce ma trzy główne i jedną opcjonalną fazę:

1. Mapper

  • Jest to pierwsza faza programowania MapReduce i zawiera logikę kodowania funkcji mapowania.
  • Logika warunkowa jest stosowana do liczby bloków danych „n” rozmieszczonych w różnych węzłach danych.
  • Funkcja mapowania przyjmuje pary klucz-wartość jako dane wejściowe jako (k, v), gdzie klucz reprezentuje adres przesunięcia każdego rekordu, a wartość reprezentuje całą zawartość rekordu.
  • Dane wyjściowe fazy mapowania będą również w formacie klucz-wartość jako (k ', v').

2. Losuj i sortuj

  • Dane wyjściowe różnych programów odwzorowujących (k ', v') przechodzą następnie w fazę Losowo i Sortuj.
  • Wszystkie zduplikowane wartości są usuwane, a różne wartości są grupowane na podstawie podobnych kluczy.
  • Dane wyjściowe z fazy losowania i sortowania będą ponownie parami klucz-wartość jako klucz i tablica wartości (k, v ()).

3. Reduktor

  • Wyjściem fazy losowania i sortowania (k, v ()) będzie wejście fazy reduktora.
  • W tej fazie wykonywana jest logika funkcji reduktora, a wszystkie wartości są agregowane względem odpowiadających im kluczy.
  • Reduktor konsoliduje dane wyjściowe różnych maperów i oblicza ostateczną wydajność zadania.
  • Ostateczne wyjście jest następnie zapisywane w jednym pliku w katalogu wyjściowym HDFS.

4. Kombinator

  • Jest to faza opcjonalna w modelu MapReduce.
  • Faza łącząca służy do optymalizacji wydajności zadań MapReduce.
  • W tej fazie różne wyniki mapowania są lokalnie redukowane na poziomie węzła.
  • Na przykład, jeśli różne wyjściowe elementy odwzorowujące (k, v) pochodzące z jednego węzła zawierają duplikaty, wówczas są łączone, tj. Lokalnie redukowane jako pojedynczy wynik (k, v ()).
  • Ta faza sprawia, że ​​faza Shuffle and Sort działa jeszcze szybciej, umożliwiając w ten sposób dodatkową wydajność zadań MapReduce.

Wszystkie te fazy w zadaniu MapReduce można przedstawić w następujący sposób:

Na przykład logikę MapReduce w celu znalezienia liczby słów w tablicy słów można przedstawić w następujący sposób:

fruits_array = (jabłko, pomarańcza, jabłko, guawa, winogrona, pomarańcza, jabłko)

  • Faza odwzorowująca tokenizuje tablicę wejściową słów na liczbę „n” słów, dając wynik jako (k, v). Weźmy na przykład „jabłko”. Wyjście programu mapującego będzie (jabłko, 1), (jabłko, 1), (jabłko, 1).
  • Losuj i sortuj akceptuj dane wyjściowe mapera (k, v) i pogrupuj wszystkie wartości według ich kluczy jako (k, v ()). tj. (jabłko, (1, 1, 1)).
  • Faza Reduktora akceptuje tasowanie i sortowanie danych wyjściowych i daje agregację wartości (jabłko, (1 + 1 + 1)), odpowiadających ich kluczom. tj. (jabłko, 3).

Spekulacyjne wykonanie pracy MapReduce

Szybkość MapReduce jest zdominowana przez najwolniejsze zadanie. Aby przyspieszyć, nowy program mapujący będzie działał na tym samym zbiorze danych w tym samym czasie. To, co zakończy zadanie jako pierwsze, jest uważane za wynik końcowy, a drugie zostaje zabite. Jest to technika optymalizacji.

Korzyści z MapReduce

Oto zalety MapReduce wymienione poniżej

1. Odporność na uszkodzenia

  • W trakcie zadania zmniejszania mapy, jeśli maszyna przenosząca kilka bloków danych zawiedzie, architektura obsłuży awarię.
  • Uwzględnia powielone kopie bloków w alternatywnych maszynach do dalszego przetwarzania.

2. Odporność

  • Każdy węzeł okresowo aktualizuje swój status do węzła głównego.
  • Jeśli węzeł podrzędny nie wyśle ​​powiadomienia, węzeł nadrzędny ponownie przypisuje aktualnie uruchomione zadanie tego węzła podrzędnego do innych dostępnych węzłów w klastrze.

3. Szybki

  • Przetwarzanie danych jest szybkie, ponieważ MapReduce wykorzystuje HDFS jako system pamięci.
  • MapReduce zajmuje kilka minut na przetworzenie terabajtów nieustrukturyzowanych dużych ilości danych.

4. Przetwarzanie równoległe

  • Zadania MapReduce przetwarzają równolegle wiele fragmentów tych samych zestawów danych, dzieląc zadania.
  • Daje to zaletę wykonania zadania w krótszym czasie.

5. Dostępność

  • Wiele replik tych samych danych jest wysyłanych do wielu węzłów w sieci.
  • Dlatego w przypadku awarii inne kopie są łatwo dostępne do przetworzenia bez strat.

6. Skalowalność

  • Hadoop to wysoce skalowalna platforma.
  • Tradycyjne systemy RDBMS nie są skalowalne zgodnie ze wzrostem ilości danych.
  • MapReduce pozwala uruchamiać aplikacje z ogromnej liczby węzłów, używając terabajtów i petabajtów danych.

7. Opłacalne

  • Skalowalna funkcja Hadoop wraz z programowaniem MapReduce pozwala przechowywać i przetwarzać dane w bardzo efektywny i niedrogi sposób.
  • Oszczędności kosztów mogą być ogromne w postaci setek terabajtów danych.

Wniosek - jak działa MapReduce

Nowoczesne dane coraz bardziej zbliżają się do typu nieustrukturyzowanego, a ogromna, konwencjonalna opcja przetwarzania danych, taka jak RDBMS, jest jeszcze trudniejsza, czasochłonna i kosztowna. Programowanie MapReduce firmy Hadoop jest jednak znacznie efektywniejsze, bezpieczniejsze i szybsze w przetwarzaniu dużych zestawów danych, nawet terabajtów lub petabajtów.

Polecane artykuły

Jest to przewodnik po tym, jak działa MapReduce. Tutaj omawiamy fazy modelu MapReduce z korzyściami i jak to działa. Możesz także zapoznać się z następującymi artykułami, aby dowiedzieć się więcej -

  1. Komponenty ekosystemu Hadoop
  2. Algorytmy MapReduce
  3. Co to jest MapReduce w Hadoop?
  4. MapReduce Pytania do wywiadu