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
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ń:
- Zadania mapy (Podziały i mapowanie)
- 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
- Śledzenie ofert pracy: Działa jak mistrz (odpowiedzialny za pełną realizację przesłanego zadania)
- 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.
- 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ń.