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 Praca programowa składa się z dwóch faz: Mapowania i Redukcji. Zadania związane z mapowaniem dotyczą podziału i mapowania.ping danych, podczas gdy zadania Reduce przestawiają i redukują dane.

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 oraz zmniejszyć funkcję.

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

Cały proces przebiega przez cztery fazy wykonania, mianowicie: podział, mapowanieping, 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ę

Mapaping

To pierwsza faza wykonywania programu map-reduce. W tej fazie dane z każdego podziału są przekazywane do mapy.ping funkcja do generowania wartości wyjściowych. W naszym przykładzie zadanie mapowaniaping faza polega na zliczeniu 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 przygotowaniu listy w formie

Szuranie

Ta faza zużywa dane wyjściowe Mapyping Faza. Jej zadaniem jest konsolidacja odpowiednich rekordów z Mapyping wyjście fazowe. W naszym przykładzie te same słowa są łączone razem wraz z odpowiadającymi im częstotliwościami.

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 mapaping)
  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. Pracatracker: Działa jak mistrz (odpowiedzialny za pełną realizację przesłanego zadania)
  2. Wiele zadań Trackers: Zachowuje się jak niewolnicy, każdy z nich wykonuje swoją pracę

Na każde zadanie zgłoszone do realizacji w systemie przypada jedno Pracatracker na którym się znajduje Węzeł nazwy i tu są wiele zadańtrackers 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.
  • To jest odpowiedzialność pracy tracker koordynuje działania poprzez planowanie zadań do wykonania na różnych węzłach danych.
  • Wykonywanie poszczególnych zadań należy następnie wykonywać według zadań tracker, który znajduje się w każdym węźle danych wykonującym część zadania.
  • Zadanie tracobowiązkiem kera jest wysłanie raportu postępu do pracy tracker.
  • Ponadto zadanie tracker okresowo wysyła 'bicie serca' sygnał do pracytracker, aby powiadomić go o aktualnym stanie systemu.
  • Tak więc praca tracker utrzymuje track ogólnego postępu każdego zadania. W przypadku niepowodzenia zadania, zadanie tracker może przełożyć to na inne zadanie tracker.

Podsumuj ten post następująco: