Co to jest MapReduce w Hadoop? Duże dane Architektura

Co to jest MapReduce w Hadoop?

MapaReduce to framework oprogramowania i model programowania używany do przetwarzania ogromnych ilości danych. MapaReduce pracę programu w dwóch fazach, mianowicie Mapowaniu i Redukcji. Zadania mapy zajmują się dzieleniem i mapowaniem danych, podczas gdy Zmniejszanie tasowania zadań i redukcja danych.

Hadoop może uruchamiać programy MapReduce napisane w różnych językach: Java, Rubin, Python, C++Programy Map Reduce w chmurze obliczeniowej mają charakter równoległy, dlatego są bardzo przydatne do przeprowadzania analiz danych na dużą skalę przy użyciu wielu maszyn w klastrze.

Wejście do każdej fazy jest kluczowa wartość pary. Dodatkowo każdy programista musi określić dwie funkcje: funkcja mapy i zmniejszyć funkcję.

MapaReduce Architecture w Big Data wyjaśniona na przykładzie

Cały proces składa się z czterech faz, mianowicie dzielenia, mapowania, tasowania i redukcji.

Teraz w tym samouczku MapReduce wyjaśnijmy to na przykładzie MapReduce–

Załóżmy, że masz następujące dane wejściowe dla swojego MapReduce w Program Big Data

Welcome to Hadoop Class
Hadoop is good
Hadoop is bad
MapaReduce Architektura
MapaReduce Architektura

Ostatecznym wynikiem zadania MapReduce jest

zły 1
Klasa 1
dobry 1
Hadoop 3
is 2
do 1
Witaj 1

Dane przechodzą przez następujące fazy MapReduce w Big Data

Podziały wejściowe:

Dane wejściowe zadania MapReduce w Big Data są dzielone na części o stałym rozmiarze, tzw podziały wejściowe Podział danych wejściowych to fragment danych wejściowych zużywany przez pojedynczą mapę

Mapowanie

To jest pierwsza faza wykonywania programu map-reduce. W tej fazie dane w każdym podziale są przekazywane do funkcji mapowania w celu wygenerowania wartości wyjściowych. W naszym przykładzie zadaniem fazy mapowania jest zliczenie liczby wystąpień każdego słowa z podziałów wejściowych (więcej szczegółów na temat podziału wejściowego podano poniżej) i przygotowanie listy w formie

Szuranie

Ta faza zużywa dane wyjściowe fazy mapowania. Jego zadaniem jest konsolidacja odpowiednich zapisów z wyników fazy mapowania. W naszym przykładzie te same słowa zostały połączone razem z odpowiednią częstotliwością.

Redukcja

W tej fazie wartości wyjściowe z fazy Shuffling są agregowane. Ta faza łączy wartości z fazy Shuffling i zwraca pojedynczą wartość wyjściową. Krótko mówiąc, ta faza podsumowuje cały zestaw danych.

W naszym przykładzie ta faza agreguje wartości z fazy Tasowania, tj. oblicza całkowitą liczbę wystąpień każdego słowa.

MapaReduce Archiszczegółowo wyjaśniona struktura

  • Dla każdego podziału tworzone jest jedno zadanie mapy, które następnie wykonuje funkcję mapy dla każdego rekordu w podziale.
  • Zawsze korzystne jest posiadanie wielu podziałów, ponieważ czas potrzebny na przetworzenie podziału jest krótki w porównaniu z czasem potrzebnym na przetworzenie całego wejścia. Gdy podziały są mniejsze, lepiej jest równoważyć obciążenie przetwarzania, ponieważ przetwarzamy podziały równolegle.
  • Jednakże nie jest pożądane, aby podziały były zbyt małe. Kiedy podziały są zbyt małe, przeciążenie związane z zarządzaniem podziałami i tworzeniem zadań mapowych zaczyna dominować nad całkowitym czasem wykonania zadania.
  • W przypadku większości zadań lepiej jest podzielić rozmiar równy rozmiarowi bloku HDFS (który domyślnie wynosi 64 MB).
  • Wykonanie zadań mapowania skutkuje zapisem danych wyjściowych na dysk lokalny odpowiedniego węzła, a nie do HDFS.
  • Powodem wyboru dysku lokalnego zamiast HDFS jest chęć uniknięcia replikacji, która ma miejsce w przypadku operacji przechowywania HDFS.
  • Wynik mapy to wynik pośredni, który jest przetwarzany przez zadania redukcji w celu uzyskania końcowego wyniku.
  • Po zakończeniu zadania wynik mapy można wyrzucić. Dlatego przechowywanie go w HDFS z replikacją staje się przesadą.
  • W przypadku awarii węzła, zanim dane wyjściowe mapy zostaną wykorzystane przez zadanie zmniejszania, Hadoop ponownie uruchamia zadanie mapy w innym węźle i ponownie tworzy wynik mapy.
  • Zadanie Redukuj nie działa w przypadku koncepcji lokalizacji danych. Dane wyjściowe każdego zadania mapy są przekazywane do zadania zmniejszania. Dane wyjściowe mapy są przesyłane do komputera, na którym uruchomione jest zadanie redukcji.
  • Na tym komputerze dane wyjściowe są łączone, a następnie przekazywane do funkcji zmniejszania zdefiniowanej przez użytkownika.
  • W przeciwieństwie do danych wyjściowych mapy, dane wyjściowe zmniejszenia są przechowywane w HDFS (pierwsza replika jest przechowywana w węźle lokalnym, a pozostałe repliki są przechowywane w węzłach poza szafą). Zatem zapisanie wyniku zmniejszenia

Jak MapReduce organizuje pracę?

W tym samouczku MapReduce dowiemy się, jak działa MapReduce

Hadoop dzieli pracę na zadania. Istnieją dwa rodzaje zadań:

  1. Zadania mapy (Podziały i mapowanie)
  2. Zmniejsz zadania (Tasowanie, redukcja)

jak wspomniano powyżej.

Cały proces wykonawczy (wykonanie zadań Map i Redukcja) jest kontrolowany przez dwa typy podmiotów zwanych a

  1. Śledzenie ofert pracy: Działa jak mistrz (odpowiedzialny za pełną realizację przesłanego zadania)
  2. Wiele modułów śledzących zadania: Zachowuje się jak niewolnicy, każdy z nich wykonuje swoją pracę

Na każde zadanie zgłoszone do realizacji w systemie przypada jedno Śledzenie ofert pracy na którym się znajduje Węzeł nazwy i tu są wiele trackerów zadań na których się znajdują Węzeł danych.

Jak działa Hadoop MapReduce
Jak działa Hadoop MapReduce
  • Zadanie jest dzielone na wiele zadań, które są następnie uruchamiane na wielu węzłach danych w klastrze.
  • Obowiązkiem modułu śledzącego zadania jest koordynacja działań poprzez planowanie zadań uruchamianych w różnych węzłach danych.
  • Wykonaniem poszczególnych zadań opiekuje się wówczas moduł śledzenia zadań, który znajduje się na każdym węźle danych wykonującym część zadania.
  • Obowiązkiem osoby śledzącej zadania jest wysyłanie raportu z postępu do modułu śledzącego zadania.
  • Ponadto moduł śledzenia zadań okresowo wysyła 'bicie serca' sygnał do Jobtrackera, aby powiadomić go o aktualnym stanie systemu.
  • W ten sposób narzędzie do śledzenia zadań śledzi ogólny postęp każdego zadania. W przypadku niepowodzenia zadania moduł śledzenia zadań może przełożyć je na inny moduł śledzenia zadań.