Co to jest MapReduce w Hadoop? Archistruktura i diagram
โก Inteligentne podsumowanie
MapReduce to model programowania Hadoop, ktรณry przeksztaลca duลผy zbiรณr danych w maลy wynik, uruchamiajฤ c funkcjฤ mapy dla kaลผdego podziaลu danych wejลciowych, a nastฤpnie funkcjฤ redukcji dla zgrupowanych wartoลci poลrednich.

Co to jest MapReduce w Hadoop?
MapReduce to framework oprogramowania i model programowania uลผywany do przetwarzania ogromnych iloลci danych. Programy MapReduce dziaลajฤ w dwรณch fazach: Map i Reduce. Zadania Map obejmujฤ dzielenie i mapowanie.ping danych, podczas gdy zadania Reduce przestawiajฤ i redukujฤ dane.
Hadoop jest w stanie uruchamiaฤ programy MapReduce napisane w rรณลผnych jฤzykach: Java, Rubin, Python, C++Programy MapReduce majฤ charakter rรณwnolegลy, dziฤki czemu sฤ bardzo przydatne do przeprowadzania analiz danych na duลผฤ skalฤ przy uลผyciu wielu maszyn w klastrze.
Dane wejลciowe do kaลผdej fazy to pary klucz-wartoลฤ. Dodatkowo kaลผdy programista musi okreลliฤ dwie funkcje: funkcjฤ mapujฤ cฤ i funkcjฤ redukujฤ cฤ .
MapaReduce Architecture w Big Data wyjaลniona na przykลadzie
Caลy proces przebiega przez cztery fazy wykonania, mianowicie: podziaล, mapowanieping, tasowania i redukcji.
W tym samouczku MapReduce wyjaลnimy to na przykลadzie MapReduce.
Zaลรณลผmy, ลผe masz nastฤpujฤ ce dane wejลciowe dla swojego MapReduce w Big Data Program:
Welcome to Hadoop Class Hadoop is good Hadoop is bad
Poniลผszy diagram tracpowtarza te trzy wersy w kaลผdej fazie, od podziaลu wejลciowego po lewej stronie do koลcowego liczenia sลรณw po prawej stronie.
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 do zadania MapReduce w Big Data sฤ dzielone na fragmenty o staลej wielkoลci, zwane podziaลami wejลciowymi. Podziaล wejลciowy to fragment danych wejลciowych, ktรณry jest przetwarzany przez pojedynczฤ mapฤ.
Mapaping
To pierwsza faza wykonywania programu MapReduce. 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 zadaniem mapyping faza polega na zliczeniu liczby wystฤ pieล kaลผdego sลowa z podziaลรณw wejลciowych (wiฤcej szczegรณลรณw na temat podziaลรณw wejลciowych 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 tasowania sฤ agregowane. Ta faza ลฤ czy wartoลci z fazy tasowania i zwraca pojedynczฤ wartoลฤ wyjลciowฤ . Krรณtko mรณwiฤ c, ta faza podsumowuje caลy zestaw danych.
W naszym przykลadzie faza ta agreguje wartoลci z fazy tasowania, tzn. oblicza caลkowitฤ liczbฤ wystฤ pieล kaลผdego sลowa.
MapaReduce Archiszczegรณลowo wyjaลniona struktura
Poniลผsze punkty wyjaลniajฤ , w jaki sposรณb podziaลy, zadania mapowania i zadania redukcji sฤ faktycznie umieszczane i przechowywane w klastrze.
- 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 jednego podziaลu jest krรณtki w porรณwnaniu z czasem potrzebnym na przetworzenie caลego wejลcia. Mniejsze podziaลy zapewniajฤ lepsze zrรณwnowaลผenie obciฤ ลผenia przetwarzania, poniewaลผ podziaลy sฤ przetwarzane rรณwnolegle.
- Jednak zbyt maลe podziaลy rรณwnieลผ nie sฤ poลผฤ dane. Gdy podziaลy sฤ zbyt maลe, narzut zwiฤ zany z zarzฤ dzaniem podziaลami i tworzeniem zadaล mapowania zaczyna dominowaฤ nad caลkowitym czasem wykonania zadania.
- W przypadku wiฤkszoลci zadaล lepiej jest ustawiฤ rozmiar podziaลu rรณwny rozmiarowi HDFS blok, ktรณrego wartoลฤ domyลlna od wersji Hadoop 2.x wynosi 128 MB (w wersji Hadoop 1.x wynosiลa 64 MB) i jest kontrolowany przez
dfs.blocksizewลasnoลฤ. - Wykonanie zadaล mapy powoduje zapisanie danych wyjลciowych na dysku lokalnym danego wฤzลa, a nie w systemie HDFS.
- Powodem wyboru dysku lokalnego zamiast HDFS jest chฤฤ unikniฤcia replikacji, ktรณra ma miejsce podczas operacji przechowywania danych w systemie 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.
- Zadania redukcji nie opierajฤ siฤ na koncepcji lokalnoลci danych. Dane wyjลciowe kaลผdego zadania mapy sฤ przekazywane do zadania redukcji. Dane wyjลciowe mapy sฤ przesyลane do maszyny, na ktรณrej 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 polecenia โmapโ, dane wyjลciowe polecenia โreduceโ sฤ przechowywane w systemie HDFS (pierwsza replika jest przechowywana na wฤลบle lokalnym, a pozostaลe na wฤzลach poza szafฤ ). Zatem zapisanie danych wyjลciowych polecenia โreduceโ zuลผywa przepustowoลฤ sieci, ale tylko tyle, ile zuลผywa standardowy potok zapisu HDFS.
Jak MapReduce organizuje pracฤ?
W tym samouczku MapReduce dowiemy siฤ, jak dziaลa MapReduce.
Hadoop dzieli zadanie na zadania. Istniejฤ dwa typy zadaล:
- Zadania na mapie (podziaลy i mapa)ping)
- Zmniejszanie zadaล (mieszanie, redukcja)
Caลy proces wykonywania, czyli wykonywanie zadaล Map i Reduce, kontrolowany jest przez dwa typy jednostek, zwane:
- PracaTracker: dziaลa jako master i jest odpowiedzialny za caลkowite wykonanie przesลanego zadania.
- Wiele zadaลTrackers: zachowujฤ siฤ jak niewolnicy, kaลผdy z nich wykonuje czฤลฤ pracy.
Na kaลผde zadanie przesลane do wykonania w systemie przypada jedno zadanieTracker, ktรณry znajduje siฤ na NameNode i istnieje wiele zadaลTrackers, ktรณre znajdujฤ siฤ na DataNodes.
Uwaga: PracaTracker i zadanieTracPara kerรณw naleลผy do MapReduce w wersji 1 (Hadoop 1.x). Od Hadoop 2.x YARN dzieli te zadania miฤdzy ResourceManager w caลym klastrze, NodeManager na kaลผdym wฤลบle i jednego ApplicationMastera na zadanie, chociaลผ same fazy mapowania, mieszania i redukcji pozostajฤ niezmienione.
Poniลผszy diagram przedstawia podziaล przesลanego zadania na zadania i tracprzemierzaล klaster.
- Zadanie jest dzielone na wiele zadaล, ktรณre sฤ nastฤpnie uruchamiane na wielu wฤzลach danych w klastrze.
- To jest odpowiedzialnoลฤ za pracฤ tracker koordynuje dziaลania poprzez planowanie zadaล do wykonania na rรณลผnych wฤzลach danych.
- Nastฤpnie wykonaniem pojedynczego zadania zajmuje siฤ zespรณล odpowiedzialny za realizacjฤ zadania. 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 sygnaล โbicia sercaโ do zadaniaTracker, 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.


