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.

Les principaux apports de la version 2 d’Hadoop – Partie 1

L’objectif de ce article est de présenter les principaux apports de la version 2 de Hadoop. Ils sont au nombre de quatre :

  • High Availability (HA) ou haute disponibilité en français , un nouveau dispositif de HDFS qui permet de faire en sorte que le NameNode (NN) ne soit plus un Single Point Of Failure (SPOF).
  • Federation, un nouveau dispositif de HDFS qui permet de gérer de manière plus efficace les clusters de grande taille.
  • YARN, un gestionnaire de ressources générique de seconde génération sur lequel s’appuie MapReduce, et qui peut être aussi mis en œuvre par d’autres modèles de traitement de données.
  • 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’adresses suivante : http://hadoop.apache.org/releases.html#News.

High Availability

Dans la version 1 de Hadoop, les clusters Hadoop disposaient d’un NN unique qui gérait l’arborescence des fichiers HDFS et suivait le stockage des  données dans un cluster.

Jusqu’à Hadoop 2.0.0, la seule façon de parer à une défaillance du NN était :

  • De lui affecter une machine à haute tolérance aux pannes.
  • D’avoir une machine “miroir”, prête à démarrer en cas de défaillance du NN.

Depuis Hadoop 2.0.0, cette notion de machine “miroir” a été institutionnalisée par le biais du mode HA (High Availability = haute disponibilité). Dans ce mode, il existe deux NN, l’un actif (Active NN), l’autre en veille (Standby NN). Le Standby NN est prêt à remplacer automatiquement l’Active NN en cas de défaillance de ce dernier, en quelques secondes en mode automatique.

Les informations sur la cartographie des données du cluster sont disponibles à la fois au niveau de l’Active NN et au niveau du Standby NN.

Le Standby NN assume en outre la fonction du SNN, qui n’existe donc plus tant qu’il est en veille.

L’opération consistant à basculer de l’Active NN vers le Standby NN peut se faire de manière automatique (Automatic Failover) ou manuelle (Manual Failover).

Les daemons de HDFS en mode "High Availability (HA)"

Les daemons de HDFS en mode “High Availability (HA)”