Wprowadzenie do komponentów Hadoop

Komponenty Hadoop to głównie HDFS, Map Reduce, Yarn. Dziś żyjemy w erze cyfrowej, w której tempo produkcji danych jest bardzo wysokie, w przybliżeniu produkujemy 2, 5 kwintillionów danych dziennie. Chociaż pojemność pamięci dyskowej rośnie, ale szybkość wyszukiwania nie wzrosła dla tego wolumenu danych. Aby temu zaradzić, musimy równolegle czytać dane, aby to osiągnąć w Hadoop, mamy HDFS (Hadoop Distributed File System), w którym zestawy danych są przechowywane jako bloki w HDFS (więcej szczegółów w sekcji HDFS), aby czytać dane równolegle i osiągnąć wyższy wskaźnik przetwarzania. Przetwarzanie danych odbywa się w celu pobrania lub prognozowania pewnych istotnych informacji lub uzyskania trendów lub wzorców. Proces MapReduce służy do uzyskania pożądanej informacji. Mapuj i zmniejszaj to dwie różne fazy przetwarzania danych.

Główne składniki Hadoop

Główne składniki Hadoop opisano poniżej:

1. Hadoop Distributed File System (HDFS)

HDFS to warstwa pamięci dla Big Data, to klaster wielu komputerów, przechowywane dane można wykorzystać do przetwarzania za pomocą Hadoop. Po przekazaniu danych do systemu plików HDFS możemy je przetworzyć w dowolnym momencie, dopóki dane nie będą przetwarzane w systemie plików HDFS, dopóki pliki nie zostaną usunięte ręcznie. HDFS przechowuje dane jako blok, minimalny rozmiar bloku to 128 MB w Hadoop 2.x, a dla 1.x było to 64 MB. HDFS replikuje bloki dostępnych danych, jeśli dane są przechowywane na jednym komputerze, a jeśli komputer ulegnie awarii, dane nie zostaną utracone, ale aby ich uniknąć, dane są replikowane na różnych komputerach. Współczynnik replikacji domyślnie wynosi 3 i możemy zmienić w pliku HDFS-site.xml lub za pomocą polecenia Hadoop fs -strep -w 3 / dir poprzez replikację mamy bloki na różnych komputerach w celu zapewnienia wysokiej dostępności.
HDFS jest architekturą master-slave, to NameNode jako master i Data Node jako slave. NameNode to maszyna, na której przechowywane są wszystkie metadane wszystkich bloków przechowywanych w DataNode.

2. PRZĘDZA

YARN został wprowadzony w Hadoop 2.x, wcześniej Hadoop miał JobTracker do zarządzania zasobami. Job Tracker był mistrzem i miał niewolnik Task Tracker. Job Tracker był tym, który zajmował się planowaniem zadań i alokacją zasobów. Śledzenie zadań służyło do dbania o mapę i ograniczanie zadań, a status był okresowo aktualizowany do Job Tracker. Jest rodzajem menedżera zasobów, który miał limit skalowalności, a ograniczenie jednoczesnego wykonywania zadań było również ograniczone. Kwestie te zostały rozwiązane w YARN i zajął się alokacją zasobów i planowaniem zadań w klastrze. Wykonywanie mapy Zmniejsz zapotrzebowanie na zasoby w klastrze, aby uzyskać zasoby przydzielone do zadania YARN pomaga. YARN określa, które zadanie jest wykonywane i która maszyna jest wykonywana. Posiada wszystkie informacje o dostępnych rdzeniach i pamięci w klastrze, śledzi zużycie pamięci w klastrze. Współdziała z NameNode na temat danych, w których się znajduje, aby podjąć decyzję o alokacji zasobów.

3. MapReduce

Ekosystem Hadoop to ekonomiczny, skalowalny i elastyczny sposób pracy z tak dużymi zestawami danych. Hadoop to framework, który wykorzystuje określony model programowania, zwany MapReduce, do dzielenia zadań obliczeniowych na bloki, które można rozdzielić wokół klastra maszyn towarowych za pomocą rozproszonego systemu plików Hadoop (HDFS).

MapReduce to dwa różne zadania Mapa i Zmniejszenie, Mapa poprzedza fazę Reduktora. Jak sama nazwa wskazuje, faza mapy odwzorowuje dane na pary klucz-wartość, ponieważ wszyscy wiemy, że Hadoop wykorzystuje wartości kluczowe do przetwarzania. Faza redukcyjna to faza, w której mamy rzeczywistą logikę do zaimplementowania. Oprócz tych dwóch faz implementuje także fazę losowego sortowania.

1. Mapper

Mapper to klasa, w której plik wejściowy jest konwertowany na pary kluczy i wartości w celu dalszego przetwarzania. Podczas odczytu danych jest on odczytywany w wartościach klucza tylko wtedy, gdy klucz jest przesunięciem bitu, a wartość jest całym rekordem.

Np. Mamy plik Diary.txt, w którym mamy zapisane dwa wiersze, czyli dwa rekordy.

To wspaniały dzień, w którym powinniśmy się cieszyć. Przesunięcia dla „t” wynoszą 0, a dla „w” jest to 33 (białe znaki są również uważane za znak), więc program mapujący odczyta dane jako parę klucz-wartość, jako (klucz, wartość), (0, to jest cudowny dzień), (33, powinniśmy się cieszyć)

2. Reduktor

Reduktor to klasa, która przyjmuje klucze i wartości z danych wyjściowych fazy mapujących. Klucze i wartości generowane z mapera są akceptowane jako dane wejściowe w reduktorze do dalszego przetwarzania. Reduktor akceptuje dane od wielu twórców map. Reduktor agreguje te dane pośrednie do zmniejszonej liczby kluczy i wartości, co jest końcowym wynikiem, zobaczymy to w przykładzie.

3. Kierowca

Oprócz klasy mapowania i reduktora potrzebujemy jeszcze jednej klasy, czyli klasy Driver. Ten kod jest niezbędny dla MapReduce, ponieważ jest pomostem między strukturą a zaimplementowaną logiką. Określa konfigurację, ścieżkę danych wejściowych, ścieżkę przechowywania danych wyjściowych, a co najważniejsze, które klasy mapowania i reduktora muszą zostać zaimplementowane, a także wiele innych konfiguracji ustawianych w tej klasie. np. w klasie sterowników możemy określić separator dla pliku wyjściowego, jak pokazano w klasie sterowników w poniższym przykładzie.

Przykład

Rozważmy, że mamy zestaw danych biura podróży, teraz musimy obliczyć na podstawie danych, ile osób decyduje się na podróż do określonego miejsca docelowego. Aby to osiągnąć, będziemy musieli przyjąć miejsce docelowe jako klucz i dla zliczenia przyjmiemy wartość jako 1. Więc w fazie mapowania będziemy mapować miejsce docelowe na wartość 1. Teraz w fazie losowania i sortowania po maperze, zamapuje wszystkie wartości na konkretny klucz. Np. Jeśli mamy miejsce docelowe jako MAA, zamapowaliśmy 1, mamy również 2 wystąpienia po tasowaniu i sortowaniu, otrzymamy MAA, (1, 1) gdzie (1, 1) jest wartością. Teraz w fazie reduktora mamy już zaimplementowaną logikę w fazie reduktora, aby dodać wartości, aby uzyskać całkowitą liczbę biletów zarezerwowanych dla miejsca docelowego. To jest przepływ MapReduce.

Poniżej znajduje się zrzut ekranu wdrożonego programu dla powyższego przykładu.

1. Klasa kierowcy

2. Klasa odwzorowująca

3. Klasa reduktora

Wykonanie Hadoop

W celu wykonania Hadoop najpierw musimy zbudować jar, a następnie możemy wykonać za pomocą poniższego polecenia jar Hadoop eample.jar /input.txt /output.txt

Wniosek

Tutaj omówiliśmy podstawowe elementy Hadoop, takie jak HDFS, Map Reduce i YARN. Jest to rozproszona struktura obliczeniowa klastra, która pomaga przechowywać i przetwarzać dane oraz przeprowadzić wymaganą analizę przechwyconych danych. Hadoop jest elastyczny, niezawodny pod względem danych, ponieważ dane są replikowane i skalowalne, tzn. Możemy dodać więcej klastrów do klastra w celu przechowywania i przetwarzania danych.

Polecane artykuły

To był przewodnik po komponentach Hadoop. Tutaj omówiliśmy podstawowe składniki Hadoop z przykładami. Możesz także przejrzeć nasze inne sugerowane artykuły, aby dowiedzieć się więcej -

  1. Wprowadzenie do architektury JDBC
  2. Co to jest klaster Hadoop?
  3. Co to jest MapReduce w Hadoop?
  4. Co to jest Big data i Hadoop
  5. Polecenia hadoop fs

Kategoria: