Yet Another Resource Negotiator (YARN)

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