hadoop mapreduce tutorial with examples what is mapreduce
W tym samouczku wyjaśnimy, czym jest MapReduce, jego zalety i jak działa Hadoop Map Reduce z przykładami:
W poprzednim samouczku dowiedzieliśmy się o HDFS Hadoop oraz mechanizmach odczytu i zapisu. Teraz zbadajmy inny składnik Hadoop, tj. MapReduce.
Przyjrzyjmy się szczegółowo następującym kwestiom:
- Co to jest MapReduce?
- Jego zalety
- Jakie jest dokładne podejście MapReduce?
=> Odwiedź tutaj, aby zapoznać się z ekskluzywną serią samouczków szkoleniowych BigData.
Czego się nauczysz:
Co to jest MapReduce?
Przejdźmy dalej i zacznijmy od komponentów Hadoop. Jak wyjaśniono wcześniej, istnieją dwa główne składniki Hadoop, tj. Hadoop HDFS i Hadoop Map Reduce.
Hadoop HDFS to system dystrybucji plików, który służy do przechowywania ogromnej ilości danych na wielu stojakach.
Tutaj omówimy jednostkę przetwarzającą Hadoop, czyli MapReduce.
Następne pytanie, które się pojawia, to „co to jest Map Reduce i dlaczego jest wymagane?”
Hadoop MapReduce to „Jednostka przetwarzająca” i za pomocą tego komponentu możemy przetwarzać Big Data przechowywane na Hadoop HDFS.
Ale jaki jest dokładny wymóg? Dlaczego potrzebujemy tego składnika Hadoop?
Big Data przechowywane na Hadoop HDFS nie są przechowywane tradycyjnie. Dane są dzielone na porcje danych przechowywane w odpowiednich DataNodes. Dlatego całe dane nie są przechowywane w jednej scentralizowanej lokalizacji.
W związku z tym natywna aplikacja kliencka, taka jak Java lub jakakolwiek taka aplikacja, nie może przetwarzać danych w obecnym formacie i potrzebujemy specjalnej struktury, która może przetwarzać pofragmentowane bloki danych przechowywane w odpowiednich DataNodes.
Przetwarzanie odbywa się za pomocą przetwarzania Hadoop MapReduce.
Mapa Reduce w pigułce
Powyższy diagram przedstawia przegląd Map Reduce, jego funkcje i zastosowania.
Zacznijmy od aplikacji MapReduce i miejsca, w którym jest używana. Na przykład, to jest używane do Klasyfikatory, indeksowanie i wyszukiwanie i tworzenie Silniki rekomendacji w witrynach handlu elektronicznego (Flipkart, Amazon itp.) Jest również używany jako Analityka przez kilka firm.
Kiedy patrzymy z perspektywy funkcji, jest to plik Model programowania i może być używany do Rozproszone na dużą skalę Model jak Hadoop HDFS i ma możliwość programowania równoległego, co czyni go bardzo użytecznym.
fazy cyklu życia rozwoju systemu wraz z przykładami
Kiedy widzimy funkcje w Map Reduce, są wykonywane dwie funkcje, tj. Funkcja Map i funkcja Reduce.
Technologia ta została wdrożona przez duże organizacje, takie jak Google, Yahoo, Facebook, a także przyjęta przez Apache Hadoop, takie jak HDFS, PIG, HIVE oraz do przechowywania danych lub wykonywania i przetwarzania Big Data za pomocą HBase, znanego również jako No-SQL.
Zalety Map-Reduce
Ta technologia ma dwie zalety.
1) Przetwarzanie równoległe
Pierwszą zaletą jest przetwarzanie równoległe. Korzystając z Map Reduce zawsze możemy przetwarzać dane równolegle.
Jak na powyższym schemacie, istnieje pięć maszyn podrzędnych i niektóre dane znajdują się na tych maszynach. Tutaj dane są przetwarzane równolegle przy użyciu Hadoop Map Reduce, dzięki czemu przetwarzanie staje się szybkie.
Właściwie to, co się tutaj dzieje, polega na tym, że cały fragment danych jest dzielony przez Hadoop HDFS na blok HDFS, a Map-Reduce przetwarza te fragmenty danych, dzięki czemu przetwarzanie staje się szybkie.
# 2) Lokalność danych
To jedna wszechstronna rzecz, którą daje Hadoop MapReduce, tj. Możemy przetwarzać dane tam, gdzie są.
Co to znaczy?
W poprzednim samouczku dotyczącym HDFS zrozumieliśmy, że dane, które przenieśliśmy do klastra Hadoop, są dzielone na bloki HDFS, a te bloki są zapisywane w SlaveMachines lub DataNodes. Map-Reduce wykrywa przetwarzanie i logikę do odpowiednich węzłów podrzędnych lub węzłów danych, w których dane znajdują się jako bloki HDFS.
Przetwarzanie jest wykonywane równolegle na mniejszych porcjach danych w wielu lokalizacjach. Oszczędza to dużo czasu, a także przepustowości sieci, która jest wymagana do przenoszenia Big Data z jednej lokalizacji do drugiej.
Pamiętaj tylko, że dane, które przetwarzamy, to Big Data podzielone na porcje, a jeśli zaczniemy przenosić Big Data bezpośrednio przez przydzielone kanały sieciowe do scentralizowanej maszyny i przetwarzać je, to nie da nam to żadnej przewagi, ponieważ zamierzamy konsumować całą przepustowość w przenoszeniu danych do scentralizowanego serwera.
Korzyści:
Więc używając Hadoop MapReduce nie tylko robimy „Przetwarzanie równoległe” , przetwarzamy również dane w odpowiednich węzłach podrzędnych lub węzłach danych, w których znajdują się fragmenty danych, a zatem jesteśmy również „Oszczędzanie dużej przepustowości sieci” co jest bardzo korzystne.
Na koniec SlaveMachines przetwarza dane przechowywane w SlaveMachines i wysyłają wyniki z powrotem do Master Machine, ponieważ wyniki nie są tak duże, jak bloki, które były przechowywane w SlaveMachines. W związku z tym nie będzie wykorzystywać dużej przepustowości.
Maszyny Slave odsyłają wynik z powrotem do Maszyny Głównej, wyniki te są agregowane, a wynik końcowy jest odsyłany z powrotem do Maszyny Klienta, które przesłało zadanie.
Tu pojawia się pytanie - kto decyduje, które dane mają być przetwarzane w którym DataNode?
Klient przesyła zadanie do menedżera zasobów, a menedżer zasobów jest tym, który zapewnia kierunek wykonywania zadania w odpowiednich węzłach danych, w których znajdują się dane, decyduje na podstawie najbliższego dostępnego węzła danych, tak aby dużo sieci Przepustowość nie jest wykorzystywana.
Tradycyjne Vs. MapReduce Way
Aby to wyjaśnić, weźmiemy pod uwagę rzeczywistą analogię liczby zgłoszeń posiadaczy polis ubezpieczyciela, wszyscy byliby świadomi zasad towarzystwa ubezpieczeniowego, ponieważ większość dużych firm ubezpieczeniowych ma swoje oddziały w różnych miastach.
W tych oddziałach jest „n” osób, które złożyły wnioski o polisy na życie.
Weźmy scenariusz, w którym mamy pięć oddziałów firm ubezpieczeniowych, do których ludzie przychodzą i składają wnioski o polisy na życie. Teraz mamy również jedną siedzibę tej firmy ubezpieczeniowej, która ma wszystkie informacje o dostępnych i zlokalizowanych oddziałach.
Jednak kiedy ludzie przychodzą i ubiegają się o polisę na życie w odpowiednich oddziałach A, B, C, D, E, wnioski o polisę są przechowywane w tych samych oddziałach i informacje te nie są udostępniane Centrali Towarzystwa.
Tradycyjny sposób:
Zobaczmy, jak ludzie tradycyjnie ubiegają się o polisę. Aby rozwiązać ten problem tradycyjnie, wszystkie wnioski zostaną przeniesione do Centrali Towarzystwa, a następnie rozpocznie się proces aplikacyjny.
czym zajmuje się beta tester
W takim przypadku wszystkie wnioski musimy przenieść do Centrali Towarzystwa, co jest sprawą kosztowną, czyli musimy zebrać wszystkie wnioski z Oddziałów Towarzystwa i zanieść je do Centrali Towarzystwa.
Taki jest koszt i ogromny wysiłek związany z wykonywaniem tej czynności.
Innym aspektem jest przeciążona Centrala Towarzystwa Ubezpieczeniowego, ponieważ musi ona przetwarzać wszystkie wnioski, które zostały złożone przez ludzi na polisy w poszczególnych oddziałach.
Ponieważ firma ubezpieczeniowa przetwarza wnioski, które zostały zastosowane we wszystkich oddziałach, zajmie to dużo czasu. Ostatecznie ten proces nie działa zbyt dobrze.
MapReduce Way
Zobaczmy, jak Map-Reduce rozwiązuje ten problem.
MapReduce postępuje zgodnie z Data Locality, tj. Nie będzie dostarczać wszystkich wniosków do Centrali Towarzystwa, zamiast tego będzie przetwarzać je równolegle w odpowiednich oddziałach.
Po rozpatrzeniu wniosków, które wpłynęły do każdego oddziału, odsyłają przetworzone dane do Centrali Towarzystwa.
Teraz Centrala Towarzystwa musi tylko zsumować liczbę przetworzonych wniosków, które nadeszły z odpowiednich oddziałów i przechowywać szczegóły w odpowiedniej Bazie Danych lub Centrum Przechowywania.
W ten sposób przetwarzanie danych będzie bardzo łatwe i szybkie, a Ubezpieczający uzyskają korzyści w mgnieniu oka.
Mapa Zmniejsz szczegółowość
W naszym poprzednim przykładzie mieliśmy dane wejściowe (aplikacje), które były rozdzielane między różne gałęzie, a każde wejście było przetwarzane przez odpowiednią funkcję mapy.
Wiemy, że MapReduce ma dwie funkcje, tj.Map Function i Reduce Function.
Część przetwarzania, która została wykonana na odpowiednich gałęziach, została wykonana przez funkcję Map. Tak więc każde wejście (wniosek) w każdym oddziale zostało przetworzone za pomocą Funkcji Map, po czym przetworzone dane zostały przesłane do Centrali Towarzystwa, a część agregacyjna została wykonana przez Funkcję Reduce.
Zagregowane szczegóły przetworzonych aplikacji są podawane jako dane wyjściowe.
Tak stało się w naszym poprzednim przykładzie. Cały proces został podzielony na zadanie mapy i zadanie redukcji.
Zadanie mapy otrzymuje dane wejściowe, a dane wyjściowe zadania mapy są przekazywane do zadania redukcji jako dane wejściowe, a to zadanie redukcji przekazuje dane wyjściowe ostatecznie klientowi.
Aby lepiej to zrozumieć, przyjrzyjmy się anatomii MapReduce.
Zadanie MapReduce działa na parze klucz-wartość, więc kiedy mówimy o mapie, mapa przyjmuje dane wejściowe jako klucz-wartość i podaje dane wyjściowe jako listę klucz-wartość. Ta lista klucz-wartość przechodzi przez fazę tasowania, a wprowadzenie klucza i lista wartości trafia do reduktora.
Na koniec Reducer daje nam listę par klucz-wartość.
Przykład MapReduce - proces liczenia słów
Weźmy inny przykład, tj. Proces liczenia słów metodą MapReduce. Ten przykład jest taki sam, jak wprowadzający przykład programowania w języku Java, tj. „Hello World”.
Zgodnie z diagramem, mieliśmy dane wejściowe, które są dzielone lub dzielone na różne wejścia. Tak więc ten proces nazywa się dzieleniem danych wejściowych, a całe wejście jest dzielone na podziały danych w oparciu o znak nowego wiersza.
Pierwsza linia to pierwsze wejście, tj. Bigdata Hadoop MapReduce , druga linia to drugie wejście, tj. MapReduce Hive Bigdata podobnie jest w przypadku trzeciego wejścia Hive Hadoop Hive MapReduce .
Przejdźmy do następnej fazy, tj. Fazy mapowania. Teraz w fazie mapowania tworzymy listę par klucz-wartość. Zatem dane wejściowe to klucz i wartość, tutaj klucz to nic innego jak przesunięcie numeru linii. Numer linii to Klucz, a cała linia to Wartość.
Tak więc dla linii 1 przesunięcie to Klucz, a Wartość to Bigdata Hadoop MapReduce . W rzeczywistości numer linii lub przesunięcie jest liczbą szesnastkową, jednak dla ułatwienia będziemy traktować ją tylko jako liczbę 1 lub 2.
Zatem linia 1 będzie kluczem, a cała linia będzie wartością. Kiedy przechodzi przez funkcję mapowania, to, co zrobi mapowanie, utworzy listę par klucz-wartość. Na przykład, Bigdata , więc funkcja odczyta każde słowo w wierszu i zaznaczy jeden (1) po przecinku.
Oznaczy one (1) jako wartość; lubić Bigdata, 1 Hadoop, 1 i MapReduce, 1 . Tutaj pojawia się pytanie, dlaczego umieszczamy jeden (1) po każdym słowie?
To dlatego, że Bigdata liczy się jeden tak Bigdata, 1 . Podobnie, Hadoop, 1 i MapReduce, 1 same mają jeden licznik, dlatego oznaczamy jeden (1) jako Wartość. W ten sam sposób dla drugiej linii lub powiedzmy linii 2, MapReduce Hive Bigdata .
W ten sam sposób funkcja mapowania ponownie tworzy dla niej listę par klucz-wartość, a zatem zgodnie z liczbą lista par klucz-wartość będzie MapReduce, 1 Hive, 1 i Bigdata, 1 .
Otrzymamy to samo jako wynik funkcji mapowania dla linii 3 tj. Hive, 2 Hadoop, 1 i MapReduce, 1 .
Przejdźmy do fazy Tasowania, w tej fazie dla każdego klucza jest przygotowana lista. W fazie Tasowania pojawi się Klucz Bigdata i doda wartości do listy. Zobaczmy więc, co się tutaj dzieje.
Jak widzimy dwie nadchodzące strzałki, pierwsza strzałka pochodzi z listy 1, a druga z listy 2, więc wynik będzie Bigdata, (1,1) .
Podobnie, gdy widzimy słowo Hadoop , ponownie dla Hadoop kolejna lista zostanie przygotowana dla Wartości. Jak widzimy, dwie nadchodzące strzałki wskazują na Tasowanie, co oznacza słowo Hadoop zostanie wybrany odpowiednio z listy 2 i listy 3, czyli ostateczny wynik po Tasowaniu będzie Hadoop, (1, 1) .
W ten sam sposób otrzymamy pozostałe słowa, takie jak Ul, (1, 1, 1) i MapReduce, (1, 1, 1) wraz z ich listą wartości lub powiedz listę Count zgodnie z dostępnością słów na odpowiednich listach.
Teraz przejdź do Fazy Redukcji, w tej fazie zaczynamy agregację Wartości, które były obecne na liście dla każdego Klucza. Więc dla Bigdata, na liście były dwie wartości, tj. (jedenaście) w ten sposób przedłożenie tych wartości zostanie dokonane Bigdata, 2 .
Podobnie w przypadku Hadoop Wartość będzie sumą, tj. (jedenaście) zgłoszenie będzie Hadoop, 2 .
W ten sam sposób dla Ul i MapReduce, zgłoszenie do funkcji redukcji będzie Ul, 3 i MapReduce, 3 odpowiednio.
W końcu ostateczny wynik zostanie odesłany do klienta, jak pokazano na poniższym schemacie „Ogólny proces liczenia słów MapReduce”
Ogólny proces liczenia słów MapReduce
jak używać stringstream w C ++
W ten sposób działa cały proces liczenia słów, gdy używasz MapReduce Way.
Wniosek
W tym samouczku nauczyliśmy się następujących rzeczy:
- Hadoop Map Reduce to „Jednostka przetwarzająca” z Hadoop.
- Do przetwarzania Big Data przechowywanych przez Hadoop HDFS używamy Hadoop Map Reduce.
- Jest używany w wyszukiwaniu i indeksowaniu, klasyfikacji, rekomendacjach i analizie.
- Posiada funkcje takie jak model programowania, programowanie równoległe i model rozproszony na dużą skalę.
- Wzorzec projektowy MapReduce to: Podsumowanie, klasyfikacja najlepszych rekordów, sortowanie i analizy, takie jak łączenie i selekcja.
- Ma tylko dwie funkcje tj. funkcja mapowania i funkcja reduktora.
- Przetwarzanie równoległe i Lokalność danych to dobre zalety Hadoop MapReduce.
- Proces MapReduce jest podzielony na sześć faz, tj. WPROWADZANIE, ROZDZIELANIE, MAPOWANIE, PRZESUWANIE, REDUKCJA i WYNIK KOŃCOWY.
To wszystko w tym samouczku, w naszych nadchodzących samouczkach omówimy:
- Jak działa MapReduce z YARN i jego składnikami?
- Przepływ pracy aplikacji przędzy.
- Co to jest Spark i jaka jest różnica między Hadoop a Spark?
=> Sprawdź WSZYSTKIE samouczki BigData tutaj.
rekomendowane lektury
- Co to jest Hadoop? Samouczek dotyczący Apache Hadoop dla początkujących
- Python DateTime Tutorial z przykładami
- Data Mart Tutorial - Rodzaje, przykłady i implementacja Data Mart
- Wymiarowy model danych w hurtowni danych - samouczek z przykładami
- Samouczek dotyczący długości tablicy w języku Java z przykładami kodu
- Samouczek dotyczący Big Data dla początkujących | Co to jest Big Data?
- Samouczek dotyczący skryptów powłoki Unix z przykładami
- Selenium Find Element By Text Samouczek z przykładami