Co to jest architektura przędzy Hadoop i jej składniki?
Opublikowany: 2020-02-10Spis treści
Wprowadzenie przędzy Hadoop
YARN jest głównym składnikiem Hadoop v2.0. YARN pomaga otworzyć Hadoop, umożliwiając przetwarzanie i uruchamianie danych w celu przetwarzania wsadowego, przetwarzania strumieniowego, przetwarzania interaktywnego i przetwarzania wykresów, które są przechowywane w HDFS. W ten sposób pomaga uruchamiać różne typy aplikacji rozproszonych innych niż MapReduce.
W architekturze YARN warstwa przetwarzania jest oddzielona od warstwy zarządzania zasobami. Zadaniem Job tracker w wersji Hadoop 1.0 było utworzenie podziału między menedżerem aplikacji a menedżerem zasobów. YARN umożliwia przetwarzanie i uruchamianie danych przechowywanych w HDFS (Hadoop Distributed File System) przez różne silniki przetwarzania danych, takie jak przetwarzanie wsadowe, przetwarzanie strumieniowe, przetwarzanie interaktywne, przetwarzanie wykresów i wiele innych. Dzięki temu zwiększa się wydajność systemu dzięki zastosowaniu przędzy. Przetwarzanie wniosku jest zaplanowane w YARN za pomocą różnych komponentów. Wiele różnych rodzajów zasobów jest również stopniowo przydzielanych w celu optymalnego wykorzystania. YARN bardzo pomaga w prawidłowym wykorzystaniu dostępnych zasobów, co jest bardzo potrzebne przy przetwarzaniu dużej ilości danych.
Dlaczego PRZĘDZA?
MapReduce wykonuje funkcje zarządzania zasobami i przetwarzania. Hadoop v1.0 jest również znany jako MapReduce w wersji 1 (MRV1). W Job Tracker był tylko jeden master.
Nie uwierzysz, jak ten program zmienił karierę studentówW poprzedniej wersji Hadoop, czyli Hadoop w wersji 1.0, która jest również znana jako MapReduce w wersji 1 (MRV1), używa się do samodzielnego wykonywania zarówno zadań zarządzania procesami, jak i zasobami. Posiada moduł śledzenia zadań, który odpowiada za wszystko. Stąd to jeden master przydziela zasoby aplikacjom, wykonuje harmonogramowanie na żądanie, a także monitoruje zadania przetwarzania w systemie. Hadoop w wersji 1.0 redukuje zadania i przypisuje mapy do kilku podprocesów, co nazywa się śledzeniem zadań. Task Tracker okresowo raportuje również postęp procesów. Ale głównym problemem nie jest to, że problem polega na tym, że projekt jednego mastera dla wszystkich, co skutkuje problemem wąskich gardeł. Również wykorzystanie zasobów obliczeniowych było nieefektywne. W ten sposób skalowalność stała się problemem w tej wersji Hadoopa. Ale z drugiej strony, problem ten został rozwiązany przez YARN, kluczowy komponent w jego następcy Hadoop w wersji 2.0, który został wprowadzony w 2012 roku przez Yahoo i Hortonworks. Podstawową ideą tej ulgi jest oddzielenie MapReduce od zarządzania zasobami i planowania zadań zamiast pojedynczego wzorca. W ten sposób YARN jest teraz odpowiedzialny za planowanie zadań i zarządzanie zasobami.
W Hadoop 2.0 koncepcja Application Master i Resource Manager została wprowadzona przez YARN. W całym klastrze Hadoop wykorzystanie zasobów jest monitorowane przez Menedżera zasobów.
Istnieje kilka cech YARN, dzięki którym stał się bardzo sławny, a są to:

- Obsługa wielu dzierżawców: YARN umożliwił dostęp do wielu silników przetwarzania danych, takich jak silnik przetwarzania wsadowego, silnik przetwarzania strumieniowego, silnik przetwarzania interaktywnego, silnik przetwarzania wykresów i wiele innych. Dało to firmie korzyść z obsługi wielu najemców.
- Wykorzystanie klastrów: Klastry są wykorzystywane w sposób zoptymalizowany, ponieważ klastry są używane dynamicznie w Hadoop za pomocą YARN.
- Kompatybilność : YARN jest również kompatybilny z pierwszą wersją Hadoop, tj. Hadoop 1.0, ponieważ wykorzystuje istniejące aplikacje redukujące mapę. Tak więc YARN może być również używany z Hadoop 1.0.
- Skalowalność : Tysiące klastrów i węzłów może zarządzać i rozszerzać za pomocą usługi Hadoop przez program planujący w Menedżerze zasobów YARN.
Składniki przędzy
- Pojemnik:
W Kontencie można znaleźć zasoby fizyczne takie jak dysk na pojedynczym węźle, rdzenie CPU, RAM. Kontekst uruchamiania kontenera (CLC) służy do wywoływania kontenerów. Dane o zależnościach, tokeny bezpieczeństwa, zmienne środowiskowe, które są utrzymywane jako rekord znany jako Container Launch Context (CLC).
- Na określonym hoście aplikacja może używać tylko określonej pamięci z procesora i pamięci. Ta określona ilość pamięci może być używana tylko po udzieleniu zezwolenia przez Kontener.
- Kontekst uruchamiania kontenera służy do zarządzania kontenerami YARN. Jest również nazywany cyklem życia kontenera (CLC). W tym rekordzie są przechowywane polecenia niezbędne do utworzenia procesu. Zapisuje również ładunek usług Node Manager, tokeny bezpieczeństwa, zależności, mapę zmiennych środowiskowych.
- Mistrz aplikacji:
W ramach, gdy składana jest pojedyncza praca, nazywa się to aplikacją. Monitorowanie postępu aplikacji, śledzenie statusu aplikacji, negocjowanie zasobów z menedżerem zasobów jest obowiązkiem menedżera aplikacji. Wszystkie wymagania aplikacji do uruchomienia są realizowane poprzez wysłanie kontekstu uruchamiania kontenera (CLC). Master aplikacji publikuje kontekst uruchamiania kontenera (CLC), żądając kontenera od menedżera węzłów. Od czasu do czasu menedżer zasobów otrzymuje raport o kondycji po uruchomieniu aplikacji.

- Menedżer węzłów:
Menedżer węzłów dba o poszczególne węzły w klastrze Hadoop, a także zarządza kontenerami powiązanymi z każdym konkretnym węzłem. Jest rejestrowany w Menedżerze zasobów i wysyła stan kondycji każdego węzła do Menedżera zasobów, stwierdzając, czy proces węzła zakończył pracę z zasobem. Jego głównym celem jest zarządzanie każdym konkretnym kontenerem węzła przydzielonym przez menedżera zasobów. Menedżer węzłów tworzy również proces kontenera na żądanie administratora aplikacji. Gdy master aplikacji wysyła i pyta dołączony kontener z menedżera węzłów za pomocą CLC (Container Launch Context), który zawiera wszystko, czego aplikacja musi wykonać. Następnie menedżer węzłów tworzy żądany kontener procesu i uruchamia go. Menedżer węzłów jest również odpowiedzialny za monitorowanie wykorzystania zasobów przez poszczególne kontenery i raportowanie tego do menedżera zasobów. W ten sposób menedżer węzłów i menedżer zasobów współpracują ze sobą, aby komunikować się między węzłami i zarządzać wykorzystaniem zasobów przez każdy węzeł w klastrze. Może również zabijać pojemniki, jeśli zostanie poproszony przez menedżera zasobów. Wreszcie, menedżerowie węzłów rejestrują wszystko przez system zarządzania dziennikami w nim.
Poszczególnym węzłem opiekuje się Menedżer węzłów. Menedżer węzłów zarządza przepływem pracy i aplikacją węzła. Przeprowadzane jest zarządzanie dziennikami, a Menedżer węzłów monitoruje wykorzystanie zasobów. Menedżer zasobów daje menedżerowi węzłów wskazówki, jak zabić kontener. Master aplikacji żąda od menedżera węzłów rozpoczęcia procesu kontenera. Za stworzenie procesu kontenerowego odpowiada Menedżer Węzłów.
- Menedżer zasobów:
Zarządzanie zasobami i przypisywanie wszystkich aplikacji jest obowiązkiem Menedżera zasobów i jest głównym demonem YARN. Żądania odebrane przez zarządcę zasobów są przekazywane do odpowiedniego zarządcy węzłów. Zgodnie z aplikacją zasoby są przydzielane przez menedżera zasobów do realizacji.
- Wykorzystanie klastra jest zoptymalizowane, np. utrzymanie aktywnego wykorzystania wszystkich zasobów wobec różnego rodzaju ograniczeń, takich jak umowy SLA, uczciwość i gwarancje pojemności.
- Menedżer zasobów dokonuje alokacji dostępnych zasobów.
- Menedżer zasobów rozstrzyga zasoby klastra.
- Właściwe przetwarzanie żądań odbywa się w węzłach, a zarządzają nim menedżerowie węzłów. Za każdym razem, gdy zostanie odebrane jakiekolwiek żądanie przetwarzania, przesyła żądania w częściach do odpowiednich menedżerów węzłów.
- Menedżer zasobów jest najwyższym autorytetem w zakresie alokacji zasobów.
Istnieją dwa podstawowe składniki Menedżera zasobów, którymi są: –

- Menedżer aplikacji –
Menedżer aplikacji odpowiada za zarządzanie zbiorem nadesłanych zadań lub wniosków. Najpierw weryfikuje i zatwierdza specyfikacje przesłanego wniosku i może odrzucić wnioski, jeśli nie ma wystarczających dostępnych zasobów. Zapewnia również, że nie istnieje żadna inna aplikacja o tym samym identyfikatorze, który został już przesłany, co może być spowodowane błędnym lub złośliwym klientem. Następnie przesyła złożony wniosek po zatwierdzeniu do harmonogramu. Wreszcie obserwuje również stany aplikacji i zarządza gotowymi aplikacjami, aby zaoszczędzić trochę pamięci Menedżera zasobów. Menedżer aplikacji przechowuje pamięć podręczną gotowych aplikacji i usuwa stare, gotowe aplikacje, aby pomieścić miejsce dla świeżo przesłanych aplikacji.
- Planista -
Na podstawie dostępności zasobów i alokacji aplikacji Harmonogram planuje zadania. Nie ma innego zadania wykonywanego przez harmonogram, jak brak restartu zadania po niepowodzeniu, śledzenie lub monitorowanie zadań. Różne typy wtyczek programu planującego to Fair Scheduler i Capacity Scheduler, które są obsługiwane przez program planujący YARN do partycjonowania zasobów klastra.
Kroki przepływu pracy aplikacji w Hadoop YARN
Wniosek składa klient.
- Menedżer Aplikacji jest uruchamiany przez przydzielenie Kontenera przez Menedżera Zasobów.
- Menedżer zasobów i Menedżer aplikacji rejestrują się ze sobą.
- Menedżer aplikacji przeprowadza negocjacje kontenera z menedżerem zasobów.
- Menedżer węzłów uruchamia Kontener po otrzymaniu powiadomienia od Menedżera aplikacji.
- Wykonanie kodu Aplikacji odbywa się w Kontenerze.
- Menedżer aplikacji lub Menedżer zasobów monitoruje stan aplikacji po skontaktowaniu się z klientem.
- Wyrejestrowanie Menedżera aplikacji odbywa się za pomocą Menedżera zasobów po zakończeniu procesu.
Zawijanie
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ę.