Wprowadzenie
Yet Another Resource Negotiator (YARN) to menedżer zasobów klastra opracowany w ramach projektu Apache Hadoop. Zastąpił stary JobTracker z Hadoop 1.x i stał się standardem do zarządzania zasobami (CPU, pamięć, GPU) w dużych środowiskach rozproszonych.
Architektura YARN
- ResourceManager (RM) – globalny menedżer zasobów klastra
- NodeManager (NM) – agent działający na każdym węźle klastra
- ApplicationMaster (AM) – proces odpowiedzialny za konkretną aplikację (np. Spark job lub trening ML)
- Container – podstawowa jednostka alokacji zasobów (pamięć + CPU/GPU cores)
YARN w kontekście Machine Learning
W uczeniu maszynowym YARN odgrywa kluczową rolę w:
- Rozproszonym treningu modeli (Distributed Training)
- Zarządzaniu klastrami Spark MLlib
- Uruchamianiu zadań TensorFlow i PyTorch na Hadoop
- Alokacji GPU do treningu głębokich sieci neuronowych
- Zapewnieniu wielodostępności w środowiskach enterprise
Zalety YARN w ML
- Dynamiczna alokacja zasobów (Dynamic Resource Allocation)
- Skalowalność do setek i tysięcy węzłów
- Możliwość pracy z różnymi frameworkami (Spark, Flink, TensorFlow-on-YARN, PyTorch-on-YARN)
- Zaawansowane planowanie (Capacity Scheduler, Fair Scheduler)
- Wsparcie dla GPU scheduling (od Hadoop 3.x)
Wyzwania
- Znaczna złożoność konfiguracji
- Wyższe opóźnienia w porównaniu do Kubernetes
- Coraz większa konkurencja ze strony Kubernetes + Kubeflow
Powiązane pojęcia
Apache Hadoop • Spark • Distributed Training • Kubernetes • Resource Management • Capacity Scheduler • GPU Scheduling • ML Infrastructure • Apache Mesos