Wyjaśnienie architektury MapReduce, wszystko, co musisz wiedzieć
Opublikowany: 2020-02-27Wraz z postępem technologii każda firma chce przechowywać i przetwarzać swoje dane online. Wymóg ten powoduje nowe zapotrzebowanie na gromadzenie dużych zbiorów danych dla przedsiębiorstw na podstawie ich działań online i offline. Gromadzone dane muszą być skutecznie przechowywane i przetwarzane.
Hadoop to jedna z najpopularniejszych platform do przetwarzania danych big data, a jednym z najlepiej wspierających bloków Hadoop jest MapReduce. Jeśli szukasz kariery jako analityk danych w dziedzinie nauki o danych, musisz być świadomy tego rozwijającego się i popularnego języka programowania.
Spis treści
Znaczenie MapReduce w analizie danych
MapReduce przetwarza dane o dużej skali, podczas gdy Hadoop realizuje kolejne programy MapReduce wpisane w wiele dialektów programowania, w tym C++, Python, Ruby on Rails, Java i wiele innych. Charakter MapReduce jest równoległy, co czyni go bardzo przydatnym w programowaniu ogromnej ilości danych, które mogą być używane przez wiele maszyn w postaci klastrów.
Co to jest programowanie MapReduce?
MapReduce to moduł programu do przetwarzania rozproszonego. Działa na Javie w dwóch fazach, a mianowicie:
- Faza mapy
- Faza redukcji
Aby zrozumieć MapReduce, każdy koder i programista musi zrozumieć te dwie fazy i ich funkcje.
1. Faza mapy
W fazie mapy informacje o danych zostaną podzielone na dwie główne części, a mianowicie wartość i klucz. Wartość jest zapisywana tylko na etapie rozdawania, podczas gdy klucz jest zapisywany na etapie przetwarzania. Za każdym razem, gdy klient poddaje się zaangażowaniu danych w framework Hadoop, narzędzie do śledzenia zadań przypisuje zadania, a informacje o danych są dzielone na wiele części.

Informacje są następnie dzielone ze względu na ich charakter. Czytnik rekordów przesyła podzielone informacje w parach klucz-wartość, które są powszechnie znane jako para (KV). KV to oryginalny formularz danych wejściowych dla fazy mapy, który ponownie przetwarza dane w module śledzenia zadań. Informacje na formularzu będą różne dla różnych aplikacji. Musisz więc zoptymalizować dane wejściowe, aby odpowiednio je zaszyfrować.
Kiedy weźmiesz informacje w formacie tekstowym, znajdziesz klucz, który jest offsetem bajtowym. Ta faza mapowania wykorzystuje również moduł łączenia i partycji do kodowania programu w taki sposób, aby wykonywał nietypowe operacje na danych. Przekonasz się, że lokalizacja danych nastąpi tylko w jednostce danych mapującej.
- Moduł sumatora w fazie mapy
Na etapie mapy moduły łączące są również nazywane minireduktorami. Łącznik jest niezbędny do zdobycia dużej przepustowości, gdy maper przetwarza ogromne ilości danych. Aby rozwiązać problem z najwyższą przepustowością, musisz użyć logiki łączenia w fazie mapy, aby uzyskać doskonały wynik wyjściowy.
- Moduł partycji w fazie mapy
Podobnie jak w module łączącym, segment partycji oferuje istotny aspekt języka programowania MapReduce, który ostatecznie wpływa na framework Hadoop. Segment przegrody zmniejsza ciśnienie powstające podczas procesu redukcji, zapewniając doskonałą wydajność. Możesz nawet dostosować partycję zgodnie z danymi, w zależności od różnych okoliczności.
Możesz nawet użyć domyślnej partycji podczas procesu. Poza tym istnieją statyczne i dynamiczne partycje, które pomagają operatorowi komputera podzielić dane na wiele liczb przy użyciu metod redukcji i mapowania fazowego. Możesz zaprojektować i dostosować te partycje zgodnie z wymaganiami biznesowymi. Ten moduł partycji będzie cenny do przesyłania danych między powyższymi dwoma procesami architektury MapReduce.
2. Faza redukcji
Po procesach fazy mapy uporządkowane i przemieszane dane staną się danymi wejściowymi dla fazy redukcji. Podczas tej fazy wszystkie posortowane dane zostaną połączone, a rzeczywista para klucz-wartość zostanie uwzględniona w strukturze HDFS. Twórcy rekordów odnotowują statystyki z fazy redukcji do struktury HDFS. Chociaż ta faza jest opcjonalna w przypadku wyszukiwania i mapowania, odgrywa ona istotną rolę w poprawie wydajności.

Przeczytaj: 10 najlepszych narzędzi Hadoop do Big Data
Ta faza inicjuje rzeczywisty proces na dostarczonych danych przez fazę Map. Faza mapy oferuje wyniki reduktora, takie jak part-r-0001. Musisz również podać zestaw liczb dla każdego zadania, które użytkownicy chcą śledzić. Możesz także ustawić wiele priorytetów, które umożliwią umieszczanie nazw konkretnych sytuacji.
W tej fazie wykonanie teoretyczne jest niezbędne do uruchomienia danych. Jeśli wiele reduktorów przetwarza te same dane, a pierwszy reduktor przetwarza wolno, moduł śledzący zadania może przypisać przetwarzanie do następnego dostępnego reduktora, aby przyspieszyć proces. Ten rodzaj przydziału do dostępnego reduktora nazywa się FIFO, czyli First In First Out.
Zrozumienie procesu architektury MapReduce
Oto punkty, o których należy pamiętać podczas pracy z architekturą MapReduce we frameworku Hadoop.
Tworzenie zadania fazy mapy : w architekturze MapReduce pierwsze zadanie fazy mapy jest tworzone w celu dzielenia danych i wykonywania modułów map w celu rejestrowania danych.
Podział danych : Moduł sumatora i podziału pomaga przetwarzać dane w wielu separacjach. Czas potrzebny na przetworzenie całości wprowadzonych danych jest wyższy w porównaniu z czasem potrzebnym na przetworzenie podziałów. Mniejsze separacje zapewniają lepsze przetwarzanie i równoważenie danych w sposób równoległy.
Przeczytaj także: Funkcje i zastosowania Hadoop
Dokładny podział : Separacje, które są zbyt małe, nie są idealne w fazie Mapy, ponieważ zwiększają obciążenie związane z obsługą podziałów i istotami tworzenia zadań Mapy, aby zarządzać czasem wykonania całego zadania.
Biorąc pod uwagę średni rozmiar podziału : Idealnie rozmiar podziału powinien wynosić 64 MB i należy ustawić go jako domyślny, aby utworzyć jednolity rozmiar podziałów. Podzielony rozmiar powinien odpowiadać blokom HDFS.
Implementacja modułu HDFS : Wyjście fazy Map kontynuuje produkcję zapisu na dysku lokalnym w pojedynczej jednostce danych, a nie w module HDFS. Aby uniknąć powtórzeń, które są częste w HDFS, musisz wybrać dysk lokalny inny niż HDFS.
Zapobieganie powielaniu : Faza mapy to centralna część, która przetwarza dane w celu przekazania ich do fazy redukcji i dostarczenia wyników. Po zakończeniu zadania dane wyjściowe mapy można usunąć, zapobiegając replikacji danych.
Wyniki oferowane w celu redukcji zadania fazy : Wyniki z fazy mapy są kolejno oferowane do fazy redukcji. W zamówieniu produkcja jest łączona i przetwarzana na zdefiniowane przez użytkownika funkcje redukcji.

Pamięć lokalna : oprócz metody Map, dane z części Zmniejsz są przechowywane w HDFS, który jest również pierwszą kopią do zapisania w lokalnej jednostce danych.
Wniosek
Framework MapReduce upraszcza złożony proces przetwarzania ogromnych danych dostępnych w strukturze Hadoop. W Hadoop 2.0 wprowadzono wiele istotnych zmian w języku programowania MapReduce w porównaniu z Hadoop 1.0.
Dostępnych jest wiele kursów do nauki języka programowania MapReduce. Możesz skorzystać z programów podyplomowych, takich jak Big Data Engineering i Big Data Analytics, w upGrad, aby rozpocząć owocną karierę w programowaniu. Skontaktuj się z naszymi ekspertami, aby dowiedzieć się więcej i uzyskać lepszy wgląd w nasze programy.
Jeśli chcesz dowiedzieć się więcej o Big Data, sprawdź nasz program PG Diploma in Software Development Specialization in Big Data, który jest przeznaczony dla pracujących profesjonalistów i zawiera ponad 7 studiów przypadków i projektów, obejmuje 14 języków programowania i narzędzi, praktyczne praktyczne warsztaty, ponad 400 godzin rygorystycznej pomocy w nauce i pośrednictwie pracy w najlepszych firmach.
Ucz się kursów rozwoju oprogramowania online z najlepszych światowych uniwersytetów. Zdobywaj programy Executive PG, Advanced Certificate Programs lub Masters Programs, aby przyspieszyć swoją karierę.