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.

Hadoop 2 – HDFS Federation

Le dispositif HDFS Federation permet de faire cohabiter plusieurs NameNodes (NN) au sein d’un même cluster physique.

Les NN sont indépendants deux à deux : chaque NN gère un espace de nommage (namespace) qui lui est propre et les NN ne communiquent pas entre eux.

Chaque NN se voit allouer un certain nombre de blocs pour stocker les fichiers dont il a la charge. Ces blocs sont répartis sur plusieurs nœuds. Un disque peut héberger des blocs correspondant à des NN différents.

L’intérêt du concept de Federation est double :

  • Federation facilite le scaling out d’un cluster :
    • Il est facile de rajouter des nœuds pour augmenter la capacité de stockage et/ou la puissance de traitement mais, dans la version 1, toute la charge de travail repose sur un seul NN, ce qui a ses limites lorsque l’on gère des clusters de plusieurs milliers de nœuds.
    • La version 2 de Hadoop, en distribuant la charge de travail entre plusieurs NN, facilite l’avènement de clusters de grande taille ; les temps de réponse au niveau des NN peuvent être améliorés (moins de métadonnées à gérer pour chaque NN, d’où besoins en RAM et en temps CPU moindres pour chaque NN, etc.).
  • Federation permet d’isoler chaque namespace des autres, par exemple pour faire cohabiter au sein d’un même cluster physique un cluster logique de développement et un cluster logique de production.
Une Federation HDFS

Une Federation HDFS

Les notions de High Availability et de Federation sont indépendantes. Il est possible d’activer l’une ou l’autre, ou les deux. Dans ce dernier cas, il faut activer l’option Federation avant d’activer l’option High Availability.

Introduction à Apache Pig

Qu’est ce que Apache Pig?

Pig est une plateforme haut niveau pour la création de programme MapReduce utilisé avec Hadoop. Le langage de cette plateforme est appelé le Pig Latin. Pig Latin s’abstrait du langage de programmation Java MapReduce et se place à un niveau d’abstraction supérieur, similaire à celle de SQL pour systèmes SGBDR. Pig Latin peut être étendue en utilisant UDF (User Defined Functions) que l’utilisateur peut écrire en Java, en Python,en JavaScript, en Ruby ou en Groovy et ensuite être utilisé directement au sein du langage.

L'architecture d'Apache Pig

L’architecture d’Apache Pig

Pig était initialement développé chez Yahoo Research dans les années 2006 pour les chercheurs qui souhaitaient avoir une solution ad-hoc pour créer et exécuter des jobs map-reduce sur d’importants jeux de données. En 2007, il a été transmis à l’Apache Software Foundation6.

Un programme Pig travaille sur des données élémentaires nommées atom. Un ensemble d’atoms, par exemple une ligne dans un fichier, s’appelle un tuple. Les tuples sont regroupés dans des bags.

Modèle de données

Modèle de données

Un programme Pig consiste souvent à charger des ensembles de données dans des bags, puis à créer de nouveaux bags par le biais d’opérations de tri, de filtrage, de jointure…

Une “requête” Pig définit un opérateur qui prend une relation en entrée et produit une autre relation en sortie. Les requêtes consistent en une séquence d’instructions suivant généralement le schéma suivant : 1 L’instruction LOAD charge les données d’un fichier (HDFS) sous la forme d’une relation (liste de n-uplets). 2 Une série de transformations traite les données. 3 L’instruction (optionnelle) STORE écrit le résultat dans le système de fichiers (HDFS) ; on peut aussi faire un DUMP pour afficher à l’écran.

 

Un programme Pig travaille sur des données élémentaires nommées atom. Un ensemble d’atoms, par exemple une ligne dans un fichier, s’appelle un tuple. Les tuples sont regroupés dans des bags. Un programme Pig consiste souvent à charger des ensembles de données dans des bags, puis à créer de nouveaux bags par le biais d’opérations de tri, de filtrage, de jointure… Un exemple de programme Pig de création, de chargement et de sauvegarde de bags est proposé ci-après.

Principaux opérateurs Pig

Operator Description
foreach Applique une expression à chaque document
filter  Filtre les tuples sur certains critères
distinct Elimination des doublons
join Jointures de deux bags
group Regroupement
cogroup Association de n-uplets provenant de deux sources
cross Produit cartésien de deux sources
order Tri
limit Limite la taille des données traitées
union Union de deux sources (dont les schémas peuvent être très différents)
split Partition d’une relation selon certains critères

 

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.

Formation Big Data et Hadoop

Bonjour,

www.opentuto.com vous offre une formation d’initiation en Big Data et Hadoop. Pour s’inscrire, http://bit.ly/1UrUHHM

Le programme de la premiere session :

  1. What is Big Data?
  2. Classification of Big Data.
  3. Characteristics of Big Data.
  4. Challenges Associated with Big Data.
  5. Traditional Approach of Storing and Processing Big Data.
  6. What is Hadoop?
  7. Features of Hadoop.
  8. How Hadoop Works?
  9. What is Hadoop EcoSystem?

Merci d’inviter toute personne interessée.