Plan du site  
pixel
pixel

Articles - Étudiants SUPINFO

Introduction à Apache Hadoop

Par Aravindan RENGARAMANUJAM Publié le 07/08/2015 à 12:47:01 Noter cet article:
(0 votes)
Avis favorable du comité de lecture

Présentation

Le Big Data représente un ensemble de données volumineux qui ne peuvent pas être traités avec des outils de gestion de bases de données classiques.

Ce sont des données qui ne peuvent pas être contenus par lignes et colonnes dans un fichier Excel.

Ils ne peuvent pas être analysés avec des méthodes analytiques traditionnelles.

Le Big Data répond aux 3 problématiques posées par l’augmentation du volume d’informations de ces dernières années :

  • Volume : Quantité d’informations à collecter et traiter.

  • Vélocité : Supporter une grande fréquence de collecte d’information.

  • Variété : et la compatibilité avec plusieurs sources d’informations (structurées, non structurées, photos, vidéos…)

Le volume de données étant en constante évolution, il nous faut stocker et lire une large quantité de données en temps réel.

Nous avons donc besoin d'un moyen de paralléliser le traitement de ces données (lecture, écriture) tout en garantissant sa disponibilité en cas de panne matérielle.

Le Framework Hadoop est un des outils BigData Open Source qui permet de répondre à cette problématique.

Il permet en effet un traitement massif de données en parallèles en proposant un nouveau système de stockage distribué, inspiré du système GFS de Google tout en garantissant la haute disponibilité des données.

Hadoop est utilisé par la plupart des grandes entreprises IT devant au quotidien traiter une large quantité d’informations : Yahoo, Facebook, Twitter, Amazon, Netflix…

Il est à noter que Yahoo a investi massivement dans le projet Hadoop et fait partie de l'un des plus grands utilisateurs avec plus de 42000 nœuds.

Ceci démontre bien la demande et l'utilisation croissante pour le BigData dans le traitement d'informations.

Pour en savoir plus concernant les entreprises utilisant Hadoop : http://wiki.apache.org/hadoop/PoweredBy

Principe de HDFS

Hadoop est une collection d’applications logicielles constitué de plusieurs composants :

  • HDFS : Hadoop Distributed File system : est un système de fichier utilisé pour stocker des pièces de fichiers à travers plusieurs ordinateurs.

  • MapReduce : est un Framework Java de traitement distribué qui comprend deux fonctions :

    • Map : est le processus qui permet de découper les données en plusieurs pièces.

    • Reduce : est le processus qui permet de combiner le résultat d’une analyse pour donner un seul résultat.

De plus les fonctionnalités de Hadoop peuvent être étendues à l’aide de Librairies / Sous Projets comme :

  • HBase : Gestion d’une base de données NoSQL.

  • Pig : est une plateforme qui permet d’écrire des programmes MapReduce.

  • Hive : crée une base de donnée relationnelle dans HDFS et résume les requêtes qui seront utilisés par la suite par MapReduce.

Il existe également plusieurs autres composants pouvant être ajoutés à Hadoop.

Voici quelques exemples :

  • Storm : permet le traitement de données en Streaming.

  • Spark -Shark : permet le stockage des données dans la RAM pour un traitement beaucoup plus rapide que sur un disque dur (+ de 100 x).

Le Framework Hadoop fournit donc une plateforme qui permet le traitement massive de données en les distribuant et en les associant à l’aide du système de fichiers distribué HDFS, la base NoSQL HBase et l’algorithme MapReduce.

HDFS

HDFS est le système de fichiers par défaut utilisé par Hadoop pour découper les données et répliquer ces pièces de données en triple sur plusieurs nœuds.

Ce système dispose de deux modes d’implémentations :

  • Distribué : permettant la triple réplication.

  • Pseudo-distribué : utilisé comme moyen de test, ce mode est implémenté sur une seule machine d’un seul nœud.

Hadoop permet également d’utiliser le système de fichiers réguliers dans un mode appelé « Standalone » pour réduire la complexité et apprendre à maitriser le programme MapReduce.

HDFS utilise une architecture maître/esclave. Dans un cluster HDFS, on retrouve un NameNode, qui est le serveur maitre qui gère le Namespace du système de fichiers et qui régule les accès aux fichiers par les clients.

Cependant, On retrouve seulement un DataNode par nœud dans un Cluster, qui eux gèrent le stockage des données dans le nœud dans lesquels ils fonctionnent. En interne, HDFS découpe un fichier en un ou plusieurs blocs qui sont stockés dans un set de Datanodes.

Le NameNode exécute les opérations telles que l’ouverture, fermeture, renommage des fichiers et dossiers, il est également en charge de l’attribution des blocs de fichiers aux Datanodes.

Le DataNode, lui est en charge de répondre aux requêtes de lecture et écriture des clients. Suite à la demande du NameNode, il peut aussi effectuer des opérations de réplications entre les nœuds.

MapReduce

MapReduce est un Framework Java qui fournit une API pour écrire des applications qui vont pouvoir traiter de larges quantités de données en parallèle sur des clusters.

La fonction Map permet de décomposer une requête importante en un ensemble de requêtes plus petites qui produisent chacune un sous ensemble du résultat final.

La fonction Reduce permet d’assembler tous ces résultats en un résultat final.

Schéma explicatif MapReduce

Domaines d'utilisation

Voici quelques exemples d’utilisations de Hadoop qui nous une donne une visibilité sur son étendue d’utilisation dans les différents domaines :

  • Analyses de risques

  • Suivi d'opérations bancaires (Ecarts d'utilisations / Utilisations frauduleuse de Carte bancaire)

  • Analyse d’informations clients (ex : Suivi clients, prospections …)

  • Moteur de recommandation de produits (ex : Amazon, Netflix)

  • Récolte d’informations pour le Retargeting de publicités

  • Données des réseaux sociaux (ex : Twitter)

  • Suivi de comportement utilisateurs devant une page web (Netflix, Online learning)

Conclusion

En conclusion, nous pouvons dire que Hadoop fournit une solution OpenSource pour une gestion de données puissante tout en permettant une scalabilité via l’ajout de librairies et une haute disponibilité grâce aux réplications de données.

En résumé, les avantages majeurs d’Hadoop sont :

  • Prix : Hadoop est OpenSource, il permet le traitement des données de la taille de pétaoctets.

  • Rapidité : Il permet un traitement parallèle des données

  • Scalabilité : Etant Opensource, il permet une personnalisation illimitée avec l’ajout de librairies selon nos besoins.

Cet article a pour but de nous initier au Big Data ainsi qu'aux composants essentiels au fonctionnement de Hadoop.

Pour en savoir plus sur Hadoop : https://hadoop.apache.org/

Définitions

  1. GFS : Google File System, un système de fichier développé par Google pour l’indexation d’informations.

  2. Cluster / Nœuds : représente un ensemble d’ordinateurs effectuant la même tâche pour assurer la disponibilité, la répartition de la charge de travail et une meilleure gestion des ressources.

  3. Haute disponibilité : C’est une architecture qui permet d’assurer le bon fonctionnement d’un service lors d’une défaillance système.

A propos de SUPINFO | Contacts & adresses | Enseigner à SUPINFO | Presse | Conditions d'utilisation & Copyright | Respect de la vie privée | Investir
Logo de la société Cisco, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société IBM, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Sun-Oracle, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Apple, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Sybase, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Novell, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Intel, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Accenture, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société SAP, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Prometric, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Toeic, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo du IT Academy Program par Microsoft, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management

SUPINFO International University
Ecole d'Informatique - IT School
École Supérieure d'Informatique de Paris, leader en France
La Grande Ecole de l'informatique, du numérique et du management
Fondée en 1965, reconnue par l'État. Titre Bac+5 certifié au niveau I.
SUPINFO International University is globally operated by EDUCINVEST Belgium - Avenue Louise, 534 - 1050 Brussels