Apache Hadoop sur Amazon EMR

Pourquoi choisir Apache Hadoop sur EMR ?

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.

Applications et frameworks de 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é). Vous pouvez également installer Apache Tez, un cadre de nouvelle génération qui peut être utilisé à la place de Hadoop MapReduce comme moteur d’exécution. 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 cadres comme Apache Spark pour le traitement en mémoire ou Presto pour les requêtes SQL interactives, en plus d’Hadoop sur Amazon EMR.

Hadoop : composants de base

Amazon EMR installe et configure de manière programmatique les applications dans le projet Hadoop, notamment Hadoop MapReduce, YARN, HDFS et Apache Tez dans les nœuds de votre cluster.

Hadoop MapReduce et Tez, des moteurs d'exécution de l'écosystème Hadoop, traitent des charges de travail à l'aide de frameworks qui divisent les tâches en des sous-tâches pouvant être réparties entre les nœuds de votre cluster Amazon EMR. Ils ont été conçus en partant du principe que toute machine de votre cluster est susceptible de subir une panne et sont destinés à 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 et Tez dans Java, ou utiliser Hadoop Streaming pour exécuter des scripts personnalisés en parallèle, Hive et Pig 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 et Tez, ainsi que d'autres frameworks distribués comme Apache Spark.

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 magasin de données 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. Vous pouvez facilement chiffrer HDFS à l’aide d’une configuration de sécurité Amazon EMR. 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.

Avantages d'Hadoop sur Amazon EMR

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, la configuration de la sécurité 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 pour permettre le transfert de données, les flux de travail et l’analytique dans les nombreux services de la plateforme AWS. En outre, vous pouvez utiliser le catalogue de données AWS Glue comme référentiel de métadonnées géré pour Apache Hive et Apache Spark.

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, afin d'éviter les coûts d'infrastructure inutiles. EMR 6.x prend en charge Hadoop 3, qui permet à YARN NodeManager de lancer des containers directement sur l'hôte du cluster EMR ou à l'intérieur d'un container Docker. Pour en savoir plus, consultez notre documentation.

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. Avec Amazon EMR, vous pouvez créer des clusters de la capacité requise en quelques minutes et utiliser EMR Managed Scaling pour redimensionner les nœuds à la hausse ou à la baisse de façon dynamique.

Comment Hadoop et le Big Data sont-ils liés ?

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.

Cas d'utilisation

Apache et Hadoop sont des marques déposées d'Apache Software Foundation.

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.

Découvrez comment Razorfish utilise Hadoop sur Amazon EMR pour l’analyse des parcours de navigation

Hadoop permet de traiter les journaux générés par les applications web et mobiles. Hadoop vous permet de transformer des pétaoctets de données non structurées ou semi-structurées en informations utiles à propos de vos applications ou de vos utilisateurs.

Découvrez comment Yelp utilise Hadoop sur Amazon EMR 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.

Découvrez comment Netflix utilise Hadoop sur Amazon EMR pour exécuter un entrepôt de données de plusieurs pétaoctets

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 1 000 Genomes.

En savoir plus sur la génomique sur AWS

 

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.

Découvrez comment Euclid utilise Hadoop sur Amazon EMR pour les charges de travail ETL et l’agrégation de données