Understanding Hadoop Yarn
On 9 grudnia, 2021 by adminYARN – Yet Another Resource Negotiator, wchodzi w skład wersji Hadoop 2, jest jednym z dwóch głównych składników Apache Hadoop (wraz z HDFS). Planuje wykorzystanie zasobów klastra, jak również zabiegi stosowane na danych.
Powyżej przedstawiona jest podstawowa architektura Yarn, gdzie Resource Manager jest podstawowym komponentem całej architektury, który odpowiada za zarządzanie zasobami, w tym RAM, CPU i innymi zasobami w całym klastrze. Application Master jest odpowiedzialny za harmonogramowanie aplikacji w całym cyklu życia, Node Manager jest odpowiedzialny za dostarczanie i izolowanie zasobów na tym węźle.
Resource Manager: kontroluje zarządzanie zasobami klastra, podejmuje również decyzje o alokacji. Menedżer zasobów ma dwa główne komponenty: Scheduler i Applications Manager.
- Scheduler: nazywa się YarnScheduler, który pozwala na różne polityki zarządzania ograniczeniami takimi jak przepustowość, sprawiedliwość i umowy o poziomie usług.
- Applications Manager: jest odpowiedzialny za utrzymanie listy złożonych aplikacji. Po złożeniu aplikacji przez klienta, menedżer aplikacji najpierw sprawdza, czy wymagania aplikacji dotyczące zasobów dla jej mistrza aplikacji mogą być spełnione, czy nie.Jeśli wystarczająca ilość zasobów jest dostępna, wtedy przekazuje aplikację do harmonogramu, w przeciwnym razie aplikacja zostanie odrzucona.
The Node Manager: jest odpowiedzialny za uruchamianie i zarządzanie kontenerami na węźle. Kontenery wykonują zadania określone przez AppMaster.
- Kontener: Oznacza przydzielone zasoby do ApplicationMaster. ResourceManager jest odpowiedzialny za wydawanie zasobów/kontenerów do ApplicationMaster. i odnosi się do zbioru zasobów takich jak pamięć, CPU, dysk i IO sieci.
- Application Master: jest instancją biblioteki specyficznej dla frameworka, która negocjuje zasoby od Resource Manager i współpracuje z NodeManager, aby wykonać i monitorować przyznane zasoby (połączone jako kontenery) dla danej aplikacji. Aplikacja może być mapreduce job, hive framework…
Kroki wykonywania aplikacji z YARN:
- Klient przesyła aplikację do YARN ResourceManager.
- ApplicationsManager (w ResourceManager) negocjuje kontener i bootstrapuje instancję ApplicationMaster dla aplikacji.
- AplikacjaMaster rejestruje się w ResourceManager i żąda kontenerów (RAM i CPU).
- AplikacjaMaster komunikuje się z NodeManagerami, aby uruchomić kontenery, które zostały jej przyznane.
- AplikacjaMaster zarządza wykonaniem aplikacji. Podczas wykonywania aplikacja dostarcza informacje o postępie i stanie do ApplicationMaster. Klient może monitorować status aplikacji przez odpytywanie ResourceManagera lub przez bezpośrednią komunikację z ApplicationMaster.
- ApplicationMaster zgłasza zakończenie aplikacji do ResourceManagera.
- ApplicationMaster wyrejestrowuje się z ResourceManagera, który następnie czyści kontener ApplicationMaster.
Yarn Scheduler :
Scheduler posiada pluggable policy, który jest odpowiedzialny za partycjonowanie zasobów klastra pomiędzy różne kolejki, aplikacje itp.
2. Scheduler FIFO
Scheduler FIFO jest jedną z najwcześniejszych strategii wdrażania wykorzystywanych przez Hadoop i może być po prostu interpretowany jako kolejka Java. co oznacza, że w klastrze może być tylko jedno zadanie w tym samym czasie. Wszystkie aplikacje są wykonywane w kolejności zgłoszeń, a zadanie po zakończeniu poprzedniego zadania zostanie wykonane w kolejności kolejki.
Ten harmonogram pozwala krótkim aplikacjom zakończyć pracę w rozsądnym czasie, jednocześnie nie głodząc aplikacji długo żyjących.
2. harmonogram pojemności
Szablon pojemności jest wtykowym harmonogramem dla Hadoop, który umożliwia wielu dzierżawcom bezpieczne współużytkowanie dużego klastra. Zasoby są przydzielane aplikacjom każdego dzierżawcy w sposób, który w pełni wykorzystuje klaster, kierując się ograniczeniami przydzielonej pojemności.
Kolejki są zwykle ustawiane przez administratorów, aby odzwierciedlić ekonomikę współdzielonego klastra. Program Capacity Scheduler obsługuje hierarchiczne kolejki, aby zapewnić, że zasoby są dzielone między podkolejki organizacji, zanim inne kolejki będą mogły korzystać z wolnych zasobów.
3. Sprawiedliwy harmonogram
The FairScheduler to pluggable scheduler dla Hadoop, który pozwala aplikacjom YARN sprawiedliwie dzielić zasoby w dużym klastrze. Sprawiedliwe planowanie to metoda przydzielania zasobów aplikacjom w taki sposób, że wszystkie aplikacje otrzymują średnio równy udział w zasobach w czasie.
.
Dodaj komentarz