Fonctionnement de Hadoop

Pour bien comprendre le fonctionnement de Hadoop, nous vous invitons à lire ces deux cours introductifs sur “Big Data” et “Hadoop”:

L’écosystème Hadoop

Hadoop est principalement constitué de deux composants :

  • Le système de gestion de fichiers distribué, HDFS.
  • Le framework MapReduce (version 1 de Hadoop)/YARN (version 2 de Hadoop).

Plus concrètement l’écosystème Hadoop comprend de nombreux autres outils couvrant le stockage et la répartition des données, les traitements distribués, l’entrepôt de données, le workflow, la programmation, sans oublier la coordination de l’ensemble des composants. On parle des outils comme Hive, Pig, Hbase, Flume,…etc

L’écosystème Hadoop

L’écosystème Hadoop

Stockage et traitement de données

Hadoop a été conçu pour stocker de très gros volumes de données sur un grand nombre de machines (nœuds) équipées de disques durs banalisés, fonctionnant en parallèle.

L’addition de plusieurs nœuds au cluster Hadoop permet d’offrir un espace de stockage et une puissance de calcul pouvant traiter des volumes de données de plusieurs To ou Po.

Le système de gestion de fichiers de Hadoop, HDFS, écrit et lit les fichiers par blocs de 64 Mo par défau. Il est toutefois possible de monter à 128 Mo. Alors que sur des systèmes classiques, la taille est généralement de 4 Ko, l’intérêt de fournir des tailles plus grandes permet de réduire le temps d’accès à un bloc.

Les blocs dans HDFS

Les blocs dans HDFS

La redondance des données

Par défaut, les données chargée dans un cluster Hadoop sont stockées en trois exemplaires, sur des nœuds différents. Cette réplication des données répond en fait à deux objectifs :

  • Disponibilité des données en cas de panne, deux copies des données, stockées sur d’autres nœuds.
  • Lors de l’exécution d’un job Hadoop, chaque tâche peut être exécutée sur n’importe quel nœud, surtout s’il stocke une copie des données nécessaires à la tâche.

Gestion des pannes d’un cluster Hadoop

L’un des avantages de Hadoop réside dans le fait que si un des nœuds qui exécute une partie des traitements tombe en panne, le travail est repris automatiquement par un autre nœud, on parle d’une réaffectation des tâches par le deamon JobTracker.

De plus, Hadoop est capable de détecter l’incident, déterminer la tâche concernée (code et données) et de relancer la tâche sur un autre nœud disposant des données nécessaires à la bonne exécution de la tâche (où l’intérêt de répliquer les données ).

Les modes de fonctionnement de Hadoop

Les modes de fonctionnement de Hadoop sont en nombre de trois :

  • le mode local (local mode) ;
  • le mode pseudo-distribué (pseudo-distributed mode) ;
  • le mode totalement distribué (fully-distributed mode).

Le mode local

En mode local, Hadoop fonctionne sur une seule station de travail et les 5 daemons de Hadoop (NameNode, SecondaryNameNode, DataNode, JobTracker et TaskTracker) s’exécutent tous dans la même JVM. De plus, le système de fichier utilisé est celui du système d’exploitation et non HDFS. Le mode local mode est rarement utilisé, sauf pour tester Hadoop pour la première fois ou déboguer un programme.

Le mode pseudo-distribué

En mode pseudo-distribué, Hadoop fonctionne sur une seule station de travail, mais chacun des 5 deamons s’exécute dans sa propre JVM ainsi que le système de fichier utilisé est HDFS. Le mode pseudo-distribué est souvent utilisé par les développeurs Haddop, parce qu’il développe et teste des jobs simulant un vrai cluster Hadoop.

Le mode totalement distribué

Le mode totalement distribué correspond au fonctionnement d’un vrai cluster Hadoop, avec plusieurs stations de travail interconnectées en réseau. chacun des 5 deamons s’exécute dans sa propre JVM ainsi que le système de fichier utilisé est HDFS.

Le mode pseudo-distribué est celui utilisé dans ce cours.

 

Présentation de Hadoop

Qu’est ce qu’Hadoop ?

Hadoop est un framework 100% open source, écrit en Java et géré par la fondation Apache. Il a été conçu pour répondre aux besoins du Big Data, tant au plan technique qu’économique. Hadoop est capable de stocker et traiter de manière efficace un grand nombre de donnés, en reliant plusieurs serveurs banalisés entre eux pour travailler en parallèle.

Hadoop offre une grande flexibilité. Ses performances évoluent de manière quasi linéaire en fonction du nombre de machines constituant le cluster. Plus le nombre de nœuds est élevé moins le temps d’exécution des jobs est court!

Hadoop fonctionne sur le principe des grilles de calcul consistant à répartir l’exécution d’un traitement intensif de données sur plusieurs noeuds ou grappes de serveurs.

Java est le langage de préférence pour écrire des programme Hadoop natifs. Néanmoins, il est possible d’utiliser python, bash, ruby, perl …

hadoop

Le nom “Hadoop” était initialement celui d’un éléphant en peluche, jouet préféré du fils de Doug Cutting.

En quoi Hadoop est-il différent des anciennes techniques ?

  • Économique : Hadoop permet aux entreprises de libérer toute la valeur de leurs données en utilisant des serveurs peu onéreux.
  • Flexible : Hadoop permet de stocker de manière extensible tous types de données. Les données peuvent être non structurées et ne suivre aucun schéma structurées  (PDF, MP3, base de données, etc.) grâce à son système de fichier HTDFS « Hadoop Distributed File System ». Les utilisateurs peuvent transférer leurs données vers Hadoop sans avoir besoin de les reformater.
  • Tolère les pannes: les données sont répliquées à travers le cluster afin qu’elles soient facilement récupérables suite à une défaillance du disque, du nœud ou du bloc.
  • Etc,…

SGBD vs Hadoop

Les systèmes de gestion de bases de données (SGBD) traditionnels sont conçus pour fonctionner en mode transactionnel, ils ne sont en aucun cas capables, techniquement et/ou financièrement, de traiter de manière séquentielle des volumes de données se chiffrant au minimum en dizaines ou centaines de To.

Les distributions de Hadoop

Il existe plusieurs distributions de Hadoop, dont les plus connues sont celles de Cloudera, Hortonworks et MapR. Bien que dans le même temps, d’autres distributions Hadoop voient aussi le jour. Par exemple, il y a Pivotal HD de EMC Corporation ou IBM InfoSphere BigInSights. Avec Amazon Elastic MapReduce (EMR), Amazon offre même une solution hébergée, pré-configurée dans son cloud.

Ces distributions comprennent des produits gratuits, qui offrent les fonctionnalités de base de Hadoop, et des options ou produits payants, qui offrent des fonctionnalités avancées.

Qui utilise déjà Hadoop ?

Hadoop est utilisé par des entreprises ayant de très fortes volumétries de données à traiter. Parmi elles, on trouve notamment des géants du web comme Facebook, Twitter, LinkedIn, ou encore les géants de l’e-commerce à l’instar de eBay et Amazon.

Vous trouverez sur cette page, la liste des entreprises et institutions publiques qui utilisent Hadoop

Quels sont les domaines d’application d’Hadoop ?

Toutes les sociétés et tous les secteurs d’activités sont concernés : la vente/commerce, distribution, transports, les administrations et le secteur public, les domaines scientifiques et médicaux, la banque/assurance, les télécoms, les usines de production.

  • Dans le domaine de la gestion de clientèle (Anticipation des désabonnement)
  • Dans le domaine de la publicité (Ciblage de la clientèle)
  • Dans le domaine de la lutte contre la fraude
  • etc,…
Les modes de fonctionnement de Hadoop >>