Hadoop 2 – YARN (Yet Another Resource Negotiator)

Apache Hadoop YARN (Yet Another Resource Negotiator) est une technologie de gestion de clusters. Elle rend l’environnement Hadoop mieux adapté aux applications opérationnelles qui ne peuvent pas attendre la fin des traitements par lots.

La principale différence entre Hadoop version 1 et Hadoop version 2 est la séparation claire dans la version 2 entre la gestion des ressources du cluster et le modèle de traitement des données.

Hadoop 1 vs Hadoop 2

Dans la version 1, MapReduce assure à la fois la gestion des ressources et le traitement des données.

Dans la version 2 :

  • La gestion des ressources du cluster est assurée par YARN.
  • Les modèles de traitement des données, MapReduce pour ce qui nous concerne, s’appuient sur YARN.
Hadoop 1 vs Hadoop 2

Hadoop 1 vs Hadoop 2

Les deux aspects “gestion des ressources du cluster” et “modèle de traitement des données” sont nettement distincts dans la version 2 de Hadoop, ce qui permet d’utiliser YARN avec des modèles de traitement différents de MapReduce tout en bénéficiant des fonctionnalités de HDFS.

Les daemons de type JT et TT n’existent plus dans la version 2 de Hadoop. Ils sont remplacés par plusieurs nouveaux daemons :

  • Le ResourceManager (RM) : il y en a un par cluster.
  • L’ApplicationMaster (AM) : il y en a un par job.
  • Le NodeManager (NM) : il y en a un par nœud esclave.

Quoi de neuf dans la version 2 de Hadoop

Les principaux apports de la version 2 de Hadoop sont au nombre de quatre :

  • High Availability permet de faire en sorte que le NameNode  ne soit plus un Single Point Of Failure.
  • Federation permet de gérer de manière plus efficace les clusters de grande taille.
  • YARN, une évolution de l’architecture d’Hadoop permettant de décharger le JobTracker(le service en charge du lancement et du suivi des tâches sur le cluster Hadoop) qui avait tendance à cumuler trop de rôles et devenait donc complexe à maintenir et à faire scaler.
  • La possibilité d’installer Hadoop directement sous Microsoft Windows.

Pour une liste à jour des dernières versions de Hadoop et de leurs fonctionnalités, se reporter à l’adresse suivante : http://hadoop.apache.org/releases.html.

Nous avons deja installé la distribution Cloudera de Hadoop, exactement la version 4 de cloudera (CDH4). Cette dernière est basée sur la version 1 de Hadoop, mais comprend déjà certains éléments de la version 2.

Aujourd’hui, le 21/07/2016, la distribution Cloudera de Hadoop est en evrsion 5 repose entièrement sur la version 2 de Hadoop. CDH5 ne supporte plus JDK 1.6 : il faut impérativement utiliser JDK 1.7.

Autres apports de la version 2 de Hadoop :

La  disparition du JobTracker de l’architecture

Ou plus précisément, ses rôles ont été répartis différemment.

L’architecture est maintenant organisée autour d’un ResourceManager dont le périmètre d’action est global au cluster et à des ApplicationMaster locaux dont le périmètre est celui d’un job ou d’un groupe de jobs. JobTracker = ResourceManager + ApplicationMaster.

Le ResourceManager

Le ResourceManager est le remplaçant du JobTracker du point de vue du client qui soumet des jobs (ou plutôt des applications en Hadoop 2) à un cluster Hadoop.

Il n’a maintenant plus que deux tâches bien distinctes à accomplir :

  • Scheduler est responsable de l’allocation des ressources des applications tournant sur le cluster.
  • ApplicationsManager accepte les soumissions d’applications.