Vidéo: Formation Big Data avec Apache Spark: Initiation | Présentation Apache Hadoop 2024
Apache Hadoop est une plate-forme logicielle gratuite et open-source pour écrire et exécuter des applications qui traitent une grande quantité de données pour l'analyse prédictive. Il permet un traitement parallèle distribué de grands ensembles de données générés à partir de différentes sources. Essentiellement, c'est un outil puissant pour stocker et traiter des données volumineuses.
Hadoop stocke tout type de données, structurées ou non, provenant de différentes sources, puis les regroupe de la façon dont vous le souhaitez. Hadoop gère des données hétérogènes à l'aide d'un traitement parallèle distribué, ce qui en fait un cadre très efficace à utiliser dans les logiciels analytiques traitant des mégadonnées. Pas étonnant que certaines grandes entreprises adoptent Hadoop, y compris Facebook, Yahoo!, Google, IBM, Twitter et LinkedIn.
Avant Hadoop, les entreprises n'étaient pas en mesure de tirer parti du big data, qui n'a pas été analysé et presque inutilisable. Le coût de stockage de ces données dans une base de données relationnelle propriétaire et de création d'un format structuré ne justifie pas les avantages de l'analyse de ces données et de leur utilisation.
Hadoop, d'autre part, rend cette tâche transparente - pour une fraction du coût - permettant aux entreprises de trouver des informations précieuses sur les abondantes données qu'elles ont acquises et accumulent.
La puissance de Hadoop réside dans la gestion de différents types - en fait, de tout type - de données: texte, discours, e-mails, photos, posts, tweets, etc. Hadoop prend en charge l'agrégation de ces données, dans toute leur diversité, et vous offre la possibilité d'interroger toutes les données à votre convenance.
Vous n'avez pas besoin de créer un schéma avant de pouvoir donner un sens à vos données. Hadoop vous permet d'interroger ces données dans son format d'origine.
En plus de traiter de grandes quantités de données variées, Hadoop est tolérant aux pannes, utilisant des programmes simples qui gèrent la planification du traitement distribué sur plusieurs machines. Ces programmes peuvent détecter une défaillance matérielle et rediriger une tâche vers une autre machine en cours d'exécution. Cette configuration permet à Hadoop de fournir une haute disponibilité, indépendamment de la défaillance du matériel.
Hadoop utilise deux composants principaux (sous-projets) pour faire son travail: MapReduce et Hadoop Distributed File System. Les deux composants fonctionnent en coopération:
-
MapReduce : l'implémentation de MapReduce par Hadoop est basée sur la recherche de Google sur les modèles de programmation pour traiter de grands ensembles de données en les divisant en petits blocs de tâches. MapReduce utilise des algorithmes distribués, sur un groupe d'ordinateurs dans un cluster, pour traiter de grands ensembles de données.Il se compose de deux fonctions:
-
La fonction Map () qui réside sur le maître nœud (ordinateur en réseau). Il divise la requête ou la tâche d'entrée en sous-tâches plus petites, qu'elle distribue ensuite aux nœuds de travail qui traitent les tâches plus petites et transmettent les réponses au nœud maître. Les sous-tâches sont exécutées en parallèle sur plusieurs ordinateurs.
-
La fonction Reduce () rassemble les résultats de toutes les sous-tâches et les combine pour produire un résultat final agrégé - qu'il renvoie en réponse à la requête d'origine.
-
-
Système de fichiers distribués Hadoop (HDFS) : HDFS réplique les blocs de données résidant sur d'autres ordinateurs de votre centre de données (pour assurer la fiabilité) et gère le transfert des données vers les différentes parties de votre système distribué.
Considérons une base de données de deux milliards de personnes, et supposons que vous voulez calculer le nombre d'amis sociaux de M. X et les organiser en fonction de leur emplacement géographique. C'est un grand ordre.
Les données de deux milliards de personnes pourraient provenir de sources très différentes telles que les réseaux sociaux, les listes d'adresses de contact par e-mail, les publications, les tweets, les historiques de navigation. Hadoop peut agréger cette énorme masse de données afin que vous puissiez l'étudier avec une requête simple.
Vous utiliseriez les capacités de programmation MapReduce pour résoudre cette requête. La définition de procédures Map et Reduce rend même cet ensemble de données volumineux gérable. En utilisant les outils qu'offre le framework Hadoop, vous allez créer une implémentation MapReduce qui ferait le calcul en deux sous-tâches:
-
Calculer le nombre moyen d'amis sociaux de Mr. X.
-
Disposer les amis de Mr. X par situation géographique.
Votre programme d'implémentation MapReduce exécutera ces sous-tâches en parallèle, gérera la communication entre les sous-tâches et assemblera les résultats. Sur deux milliards de personnes, vous sauriez qui sont les amis en ligne de MX.
Hadoop fournit une gamme de processeurs Map; Le (s) que vous choisirez dépendront de votre infrastructure.
Chacun de vos processeurs traitera un certain nombre d'enregistrements. Supposons que chaque processeur gère un million d'enregistrements de données. Chaque processeur exécute une procédure Map qui produit plusieurs enregistrements de paires clé-valeur où G (clé) est l'emplacement géographique d'une personne (pays) et N (valeur) le nombre de contacts que la personne a.
Supposons que chaque processeur Map produise plusieurs paires de formulaires, par exemple:
Carte du processeur n ° 1:
Carte du processeur n ° 2:
Carte du processeur n ° 3:
Carte du processeur n ° 4:
Carte processeur n ° 5:
Carte processeur n ° 6:
Dans la phase Réduire, Hadoop attribue une tâche à un certain nombre de processeurs: Exécutez la procédure Réduire qui agrège les valeurs des mêmes clés pour produire un résultat final. Pour cet exemple, l'implémentation Réduire résume le nombre de valeurs pour chaque clé - emplacement géographique. Ainsi, après la phase de la carte, la phase de réduction produit ce qui suit:
------ ----
Clairement, M.X est un gars populaire - mais c'était un exemple très simple de la façon dont MapReduce peut être utilisé. Imaginez que vous ayez affaire à un grand ensemble de données dans lequel vous souhaitez effectuer des opérations complexes, telles que la mise en cluster de milliards de documents dont l'opération et les données sont trop importantes pour une seule machine. Hadoop est l'outil à considérer.