Apache™ Hadoop® est un projet de logiciel open source qui peut être utilisé pour traiter efficacement de grands ensembles de données. Au lieu d'utiliser un vaste système informatique pour traiter ou stocker les données, Hadoop regroupe du matériel universel pour analyser des ensembles de données volumineux en parallèle.
L'écosystème Hadoop comprend de nombreux moteurs d'exécution et applications, et fournit différents outils afin de répondre aux besoins de vos charges de travail d'analyse. Amazon EMR facilite la création et la gestion de clusters élastiques et entièrement configurés d'instances Amazon EC2 exécutant Hadoop et d'autres applications dans l'écosystème Hadoop.
Hadoop fait généralement référence au projet Apache Hadoop qui comprend MapReduce (un framework d'exécution), YARN (un gestionnaire de ressources) et HDFS (un système de stockage distribué). Amazon EMR comprend également le système EMRFS, un connecteur permettant à Hadoop d'utiliser Amazon S3 comme couche de stockage.
Cependant, l'écosystème Hadoop comprend également d'autres applications et frameworks, notamment des outils permettant d'effectuer des requêtes à faible latence, des interfaces utilisateurs graphiques pour les requêtes interactives, un large éventail d'interfaces comme SQL et des bases de données NoSQL distribuées. L'écosystème Hadoop comprend de nombreux outils open source conçus pour enrichir les principaux composants Hadoop. De plus, vous pouvez utiliser Amazon EMR pour installer et configurer facilement des outils tels que Hive, Pig, Hue, Ganglia, Oozie et HBase sur votre cluster. Vous pouvez également exécuter d'autres frameworks comme Apache Spark pour le traitement en mémoire ou Presto pour les requêtes SQL interactives, en plus d'Hadoop sur Amazon EMR.
Amazon EMR installe et configure de manière programmatique des applications du projet Hadoop, notamment Hadoop MapReduce, YARN et HDFS, dans les nœuds de votre cluster. Vous pouvez également sélectionner des applications supplémentaires comme Hive et Pig pour l'installation.
Hadoop MapReduce est un moteur d'exécution d'Hadoop qui traite les charges de travail à l'aide du framework MapReduce qui divise les tâches en des sous-tâches pouvant être réparties entre les nœuds de votre cluster Amazon EMR. Le moteur Hadoop MapReduce a été conçu en partant du principe que toute machine de votre cluster est susceptible de subir une panne et est destiné à garantir la tolérance aux pannes. Si un serveur exécutant une tâche tombe en panne, Hadoop réexécute cette tâche sur une autre machine tant que celle-ci n'est pas terminée.
Vous pouvez écrire des programmes MapReduce dans Java, ou utiliser Hadoop Streaming pour exécuter des scripts personnalisés en parallèle, Hive et Pig (si vous choisissez d'installer ces applications sur votre cluster Amazon EMR) pour les tâches de niveau supérieur sur MapReduce ou d'autres outils pour interagir avec Hadoop.
Avec Hadoop 2, la gestion des ressources est assurée par la technologie YARN (Yet Another Resource Negotiator). Cette technologie surveille toutes les ressources de votre cluster et s'assure qu'elles sont allouées de façon dynamique pour accomplir les tâches de votre opération de traitement. Le gestionnaire de ressources YARN peut gérer les charges de travail Hadoop MapReduce, ainsi que d'autres frameworks distribués comme Apache Spark, Apache Tez, etc.
En utilisant le système de fichiers EMR (EMRFS) sur votre cluster Amazon EMR, vous pouvez vous servir d'Amazon S3 comme couche de données pour Hadoop. Amazon S3 est une solution hautement évolutive à faible coût, conçue pour offrir une excellente durabilité, ce qui en fait un datastore idéal pour le traitement du Big Data. En stockant vos données dans Amazon S3, vous pouvez dissocier votre couche de calcul de votre couche de stockage, ce qui vous permet de dimensionner votre cluster Amazon EMR en fonction de la quantité de ressources CPU et de mémoire nécessaire à vos charges de travail, au lieu de disposer de nœuds supplémentaires dans votre cluster pour maximiser le stockage dans ce dernier. De plus, vous pouvez supprimer votre cluster Amazon EMR lorsqu'il est inactif pour réaliser des économies, tandis que vous données restent dans Amazon S3.
Optimisé pour Hadoop, le système EMRFS assure une lecture et une écriture directes et efficaces, en parallèle avec Amazon S3, et peut traiter des objets cryptés à l'aide du chiffrement côté serveur et côté client Amazon S3. Le système EMRFS vous permet d'utiliser Amazon S3 comme Data Lake, et Hadoop sur Amazon EMR peut être utilisé comme couche de requête élastique.
Hadoop comprend également un système de stockage distribué, le système HDFS (Hadoop Distributed File System), qui stocke les données sur les disques locaux de votre cluster sous forme de blocs volumineux. Le système HDFS possède un facteur de réplication configurable (3x par défaut) qui offre une disponibilité et une durabilité accrues. Le système HDFS surveille la réplication et équilibre la répartition de vos données entre les nœuds en cas de défaillance de ceux-ci et lors de l'ajout de nouveaux nœuds.
Le système HDFS est automatiquement installé avec Hadoop sur votre cluster Amazon EMR et vous pouvez l'utiliser avec Amazon S3 pour stocker vos données d'entrée et de sortie. De plus, Amazon EMR configure Hadoop afin qu'il utilise le système HDFS et le disque local pour les données intermédiaires créées lors de vos tâches Hadoop MapReduce, même si vos données d'entrée se trouvent dans Amazon S3.
Vous pouvez initialiser un cluster Hadoop de façon dynamique et rapide, ou ajouter des serveurs à votre cluster Amazon EMR existant, pour mettre les ressources plus rapidement à la disposition de vos utilisateurs et spécialistes des données. En utilisant Hadoop sur la plateforme AWS, votre organisation peut considérablement gagner en souplesse en diminuant le coût et le temps nécessaires à l'allocation des ressources à des fins d'expérimentation et de développement.
La configuration d'Hadoop, la mise en réseau, l'installation du serveur et la maintenance administrative courante peuvent s'avérer des tâches complexes et difficiles. Amazon EMR étant un service géré, la solution répond aux exigences de votre infrastructure Hadoop pour vous permettre de vous concentrer sur votre activité principale.
Vous pouvez facilement intégrer votre environnement Hadoop à d'autres services tels qu'Amazon S3, Amazon Kinesis, Amazon Redshift et Amazon DynamoDB, outre Amazon EMR, pour permettre le transfert de données, les workflows et les analyses dans les nombreux services de la plate-forme AWS.
De nombreuses tâches Hadoop sont par nature irrégulières. Par exemple, une tâche ETL peut être exécutée une fois par heure, par jour ou par mois, tandis que des tâches de modélisation effectuées pour des sociétés financières ou des séquençages génétiques peuvent avoir lieu seulement quelques fois par an. En utilisant Hadoop sur Amazon EMR, vous pouvez facilement lancer ces clusters de charges de travail, enregistrer les résultats et supprimer vos ressources Hadoop lorsque vous n'en avez plus besoin, pour éviter les coûts d'infrastructure inutiles.
En utilisant Hadoop sur Amazon EMR, vous avez la possibilité de lancer vos clusters dans n'importe quel nombre de Zones de Disponibilité (AZ), dans n'importe quelle région AWS. Un problème ou une menace potentielle dans une région ou une zone peut être facilement contournée en lançant un cluster dans une autre zone en quelques minutes.
La planification des capacités avant le déploiement d'un environnement Hadoop a souvent comme conséquence des ressources inutilisées coûteuses ou des ressources limitées. Amazon EMR vous permet d'allouer autant de capacités que vous le souhaitez et de les augmenter ou de les réduire en fonction de vos besoins en à peine quelques minutes.
Hadoop est couramment utilisé pour traiter des charges de travail de Big Data en raison de sa haute évolutivité. Pour augmenter la puissance de traitement de votre cluster Hadoop, ajoutez davantage de serveurs disposant des ressources de CPU et de mémoire nécessaires pour répondre à vos besoins.
Hadoop offre un haut niveau de durabilité et de disponibilité, tout en traitant des charges de travail d'analyse et de calcul en parallèle. La combinaison de disponibilité, de durabilité et d'évolutivité du traitement fait d'Hadoop le choix idéal pour les charges de travail de Big Data. Vous pouvez utiliser Amazon EMR pour créer et configurer un cluster d'instances Amazon EC2 exécutant Hadoop en quelques minutes, et commencer à exploiter vos données.
Hadoop permet d'analyser les données de parcours de navigation afin de segmenter les utilisateurs et de comprendre leurs préférences. Les annonceurs peuvent également analyser les parcours de navigation et les journaux d'impression publicitaire, afin de fournir des annonces plus efficaces.
Hadoop permet de traiter les journaux générés par les applications Web et mobiles. Hadoop permet aux clients de transformer des pétaoctets de données non structurées ou semi-structurées en informations utiles à propos de leurs applications ou de leurs utilisateurs.
Découvrir comment Yelp utilise Hadoop pour diriger des fonctionnalités de site Web essentielles »
Les applications de l'écosystème Hadoop telles que Hive permettent aux utilisateurs d'exploiter Hadoop MapReduce à l'aide d'une interface SQL, ce qui permet d'analyser des entrepôts de données distribués, tolérants aux pannes et à très grande échelle. Utilisez Hadoop pour stocker vos données et permettre à vos utilisateurs d'envoyer des requêtes, quelle que soit la taille des données.
Hadoop peut être utilisé pour traiter des volumes importants de données génomiques et d'autres grands ensembles de données scientifiques, rapidement et efficacement. AWS met gratuitement à la disposition de la communauté les données du projet 1000 Genomes.
Etant donné son extrême évolutivité et son coût réduit, Hadoop est parfaitement adapté aux charges de travail ETL courantes telles que la collecte, le tri, l'association et l'agrégation de grands ensembles de données pour faciliter leur utilisation par les systèmes en aval.
Apache et Hadoop sont des marques déposées d'Apache Software Foundation.