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 -
- Komponenty ekosystemu Hadoop
- Algorytmy MapReduce
- Co to jest MapReduce w Hadoop?
- MapReduce Pytania do wywiadu