Hadoop - Présentation

Hadoop est un framework open source Apache écrit en java qui permet le traitement distribué de grands ensembles de données sur des clusters d'ordinateurs à l'aide de modèles de programmation simples. L'application de cadre Hadoop fonctionne dans un environnement qui fournit un stockage et un calcul distribués sur des clusters d'ordinateurs. Hadoop est conçu pour passer d'un serveur unique à des milliers de machines, chacune offrant un calcul et un stockage locaux.

Architecture Hadoop

À la base, Hadoop a deux couches principales à savoir -

  • Traitement / couche de calcul (MapReduce), et
  • Couche de stockage (système de fichiers distribués Hadoop).

MapReduce

MapReduce est un modèle de programmation parallèle pour l'écriture d'applications distribuées conçu par Google pour le traitement efficace de grandes quantités de données (ensembles de données de plusieurs téraoctets), sur de grands clusters (des milliers de nœuds) de matériel de base de manière fiable et tolérante aux pannes. Le programme MapReduce s'exécute sur Hadoop qui est un framework open-source Apache.

Système de fichiers distribués Hadoop

Le système de fichiers distribués Hadoop (HDFS) est basé sur le système de fichiers Google (GFS) et fournit un système de fichiers distribué conçu pour fonctionner sur du matériel standard. Il présente de nombreuses similitudes avec les systèmes de fichiers distribués existants. Cependant, les différences par rapport aux autres systèmes de fichiers distribués sont importantes. Il est hautement tolérant aux pannes et est conçu pour être déployé sur du matériel à faible coût. Il fournit un accès à haut débit aux données d'application et convient aux applications ayant de grands ensembles de données.

Outre les deux composants de base mentionnés ci-dessus, le framework Hadoop comprend également les deux modules suivants -

  • Hadoop Common - Ce sont des bibliothèques Java et des utilitaires requis par d'autres modules Hadoop.

  • Hadoop YARN - Il s'agit d'un cadre pour la planification des travaux et la gestion des ressources de cluster.

Comment fonctionne Hadoop?

Il est assez coûteux de construire des serveurs plus gros avec des configurations lourdes qui gèrent un traitement à grande échelle, mais comme alternative, vous pouvez relier de nombreux ordinateurs de base avec un seul processeur, en tant que système distribué fonctionnel unique et pratiquement, les machines en cluster peuvent lire l'ensemble de données en parallèle et offrent un débit beaucoup plus élevé. De plus, c'est moins cher qu'un serveur haut de gamme. C'est donc le premier facteur de motivation derrière l'utilisation de Hadoop qui s'exécute sur des machines en cluster et à faible coût.

Hadoop exécute le code sur un cluster d'ordinateurs. Ce processus comprend les tâches principales suivantes qu'exécute Hadoop -

  • Les données sont initialement divisées en répertoires et fichiers. Les fichiers sont divisés en blocs de taille uniforme de 128 Mo et 64 Mo (de préférence 128 Mo).

  • Ces fichiers sont ensuite distribués sur divers nœuds de cluster pour un traitement ultérieur.

  • HDFS, étant au-dessus du système de fichiers local, supervise le traitement.

  • Les blocs sont répliqués pour gérer les pannes matérielles.

  • Vérifier que le code a été exécuté avec succès.

  • Effectuer le tri qui a lieu entre la carte et réduire les étapes.

  • Envoi des données triées à un certain ordinateur.

  • Écriture des journaux de débogage pour chaque travail.

Avantages de Hadoop

  • Le framework Hadoop permet à l'utilisateur d'écrire et de tester rapidement des systèmes distribués. Il est efficace et distribue automatiquement les données et le travail sur les machines et utilise à son tour le parallélisme sous-jacent des cœurs du processeur.

  • Hadoop ne s'appuie pas sur le matériel pour fournir une tolérance aux pannes et une haute disponibilité (FTHA), mais la bibliothèque Hadoop elle-même a été conçue pour détecter et gérer les pannes au niveau de la couche application.

  • Les serveurs peuvent être ajoutés ou supprimés du cluster de manière dynamique et Hadoop continue de fonctionner sans interruption.

  • Un autre gros avantage d'Hadoop est qu'en plus d'être open source, il est compatible sur toutes les plateformes puisqu'il est basé sur Java.