Amazon EMR est la meilleure solution pour exécuter Apache Spark. Vous pouvez rapidement et facilement créer des clusters Spark gérés à partir de l'AWS Management Console, de l'interface de ligne de commande AWS ou de l'API Amazon EMR. De plus, vous pouvez profiter de fonctionnalités Amazon EMR supplémentaires, notamment une connectivité Amazon S3 rapide à l'aide d'Amazon EMR File System (EMRFS), une intégration à la place de marché des instances Spot Amazon EC2 et au catalogue de données AWS Glue, et EMR Managed Scaling pour ajouter ou supprimer des instances dans votre cluster. AWS Lake Formation permet un contrôle d'accès précis, tandis qu'AWS Step Functions vous aide à orchestrer vos pipelines de données. EMR Studio (version préliminaire) est un environnement de développement intégré (IDE) qui permet aux scientifiques des données et aux ingénieurs des données de facilement développer, visualiser et déboguer les applications d'ingénierie et de science des données écrites en R, Python, Scala et PySpark. EMR Studio fournit des blocs-notes Jupyter entièrement gérés et des outils tels que Spark UI et YARN Timeline Service pour simplifier le débogage. EMR Notebooks vous permet d'expérimenter et de développer des applications en toute simplicité avec Spark. Vous avez également la possibilité d'utiliser Apache Zeppelin afin de créer des blocs-notes interactifs et collaboratifs pour l'exploration de données à l'aide de Spark.
Fonctionnalités et avantages
Performances rapides
EMR présente l'environnement d'exécution EMR pour Apache Spark, un environnement optimisé et activé par défaut sur les clusters Amazon EMR. L'environnement d'exécution Amazon EMR pour Apache Spark peut être jusqu'à trois fois plus rapide que les clusters sans environnement d'exécution EMR, et offre 100 % de compatibilité avec l'API standard Apache Spark. Ces performances accrues vous permettent d'exécuter vos charges de travail plus rapidement et de réaliser des économies sur les coûts de calcul, sans devoir modifier vos applications.
Grâce à un moteur d'exécution de graphe orienté acyclique (DAG, Directed Acyclic Graph), Spark peut créer des plans de requêtes efficaces pour les transformations de données. Spark stocke également en mémoire des données d'entrée, de sortie et intermédiaires sous forme de trame de données pour assurer un traitement rapide sans coût d'E/S et améliorer les performances des charges de travail itératives ou interactives.
Développez des applications rapidement et de manière collaborative
Apache Spark offre une prise en charge native de Java, Scala, SQL et Python, afin de vous proposer un large éventail de langages pour la création de vos applications. Vous pouvez également soumettre des requêtes SQL ou HiveQL à l'aide du module Spark SQL. Outre l'exécution d'applications, vous pouvez utiliser l'API Spark de manière interactive avec Python ou Scala directement dans le shell Spark ou via EMR Studio ou les blocs-notes Jupyter sur votre cluster. La compatibilité avec Apache Hadoop 3.0 dans EMR 6.0 permet la prise en charge des containers Docker afin de simplifier la gestion des dépendances. Vous pouvez également utiliser l'environnement EMR Notebooks (basé sur Jupyter), qui est indépendant des clusters, ou faire appel à Zeppelin afin de créer des blocs-notes interactifs et collaboratifs pour l'exploration et la visualisation de données. Vous pouvez ajuster et déboguer vos charges de travail dans la console EMR, qui comprend un serveur d'historique Spark permanent hors cluster.
Créez des flux de travail diversifiés
Apache Spark comprend plusieurs bibliothèques permettant la création d'applications pour le machine learning (MLlib), le traitement des flux (Spark Streaming) et le traitement des graphes (GraphX). Ces bibliothèques sont étroitement intégrées à l'écosystème Spark et sont prêtes à l'emploi pour répondre à différents cas d'utilisation. De plus, vous pouvez utiliser les frameworks de deep learning comme Apache MXNet avec vos applications Spark. L'intégration avec AWS Step Functions vous permet d'automatiser et d'orchestrer des flux de travail sans serveur pour vos applications.
Intégration à l'ensemble de fonctionnalités Amazon EMR
Soumettez des tâches Spark Apache à l'aide de l'API EMR Step, utilisez Spark avec le système EMRFS pour accéder directement aux données dans S3, réalisez des économies en utilisant votre capacité Spot EC2, utilisez EMR Managed Scaling pour ajouter ou supprimer de la capacité de façon dynamique, et lancez des clusters éphémères ou de longue durée afin de répondre aux besoins de votre charge de travail. Vous pouvez facilement configurer le chiffrement Spark et l'authentification avec Kerberos à l'aide d'une configuration de sécurité EMR. De plus, vous pouvez utiliser le catalogue de données AWS Glue pour stocker des métadonnées de table SQL Spark, ou utiliser Amazon SageMaker avec vos pipelines de machine learning Spark. EMR assure l'installation et la gestion de Spark sur Hadoop YARN. Vous pouvez également ajouter d'autres applications Big Data sur votre cluster. EMR avec Apache Hudi vous permet de gérer plus efficacement la capture des données modifiées (CDC) et facilite la mise en conformité aux réglementations relatives à la confidentialité telles que le RGPD et le CCPA en simplifiant l'effacement des enregistrements. Cliquez ici pour en savoir plus sur les fonctionnalités d'EMR.
Cas d'utilisation
Traitement des flux
Utilisez et traitez des données en temps réel depuis Amazon Kinesis, Apache Kafka ou d'autres flux de données avec Spark Streaming sur EMR. Effectuez des analyses en continu en profitant d'une tolérance élevée aux pannes et écrivez les résultats sur S3 ou sur le système HDFS dans le cluster.
Machine learning
Apache Spark sur EMR comprend la bibliothèque MLlib pour offrir un large éventail d'algorithmes de machine learning scalables. Vous pouvez également utiliser vos propres bibliothèques. En stockant les ensembles de données en mémoire lors de l'exécution d'une tâche, Spark offre des performances élevées pour les requêtes itératives courantes dans les charges de travail de machine learning. Vous pouvez accroître les capacités Amazon SageMaker en connectant l'instance de bloc-notes à un cluster Spark Apache qui s'exécute sur Amazon EMR, avec Amazon SageMaker Spark, afin de facilement former les modèles et de les héberger.
Requêtes SQL interactives
Vous pouvez utiliser Spark SQL pour exécuter des requêtes interactives à faible latence avec SQL ou HiveQL. Étant donné que Spark on EMR peut exploiter le système EMRFS, vous pouvez accéder à vos ensembles de données dans S3. Vous pouvez également utiliser EMR Studio, EMR Notebooks, des blocs-notes Zeppelin ou des outils d'informatique décisionnelle via les connexions ODBC et JDBC.
Témoignages de réussite
Yelp
L'équipe de ciblage publicitaire de Yelp réalise des modèles de prévision pour déterminer la probabilité qu'un utilisateur interagisse avec une publicité. En utilisant Apache Spark sur Amazon EMR pour traiter de grandes quantités de données afin de former des modèles de machine learning, Yelp a augmenté son chiffre d'affaires et son taux de clics publicitaires.
The Washington Post
Le Washington Post utilise Apache Spark sur Amazon EMR pour créer des modèles optimisant le moteur de recommandation de son site Web pour améliorer l'engagement et la satisfaction des lecteurs. Le journal tire parti de la connectivité performante d'Amazon EMR avec Amazon S3 pour mettre à jour ses modèles en temps quasi réel.
Intent Media
Intent Media gère une plate-forme publicitaire destinée aux sites marchands de voyage. L'équipe responsable du traitement des données utilise Apache Spark et MLlib sur Amazon EMR pour intégrer chaque jour des téraoctets de données concernant l'e-commerce et se sert de ces informations pour améliorer ses services décisionnels afin d'optimiser le chiffre d'affaires des clients. Cliquez ici pour en savoir plus
Krux
Dans le cadre de sa plate-forme de gestion des données spécialisée dans la recherche d'informations sur les clients, Krux exécute de nombreuses charges de travail de machine learning et de traitement général à l'aide d'Apache Spark. Krux utilise des clusters Amazon EMR éphémères avec sa capacité d'instance Spot Amazon EC2 pour réaliser des économies et utilise Amazon S3 avec le système EMRFS comme couche de données pour Apache Spark.
GumGum
GumGum, une plate-forme spécialisée dans les images et écrans publicitaires, utilise Spark sur Amazon EMR pour les prévisions de stocks, le traitement des journaux de parcours de navigation et l'analyse ad hoc de données non structurées dans Amazon S3. Les améliorations de performances obtenues grâce à Spark ont permis à GumGum de gagner du temps et de réaliser des économies dans le cadre de ces processus.
Hearst Corporation
Hearst Corporation, une grande société de médias et d'information diversifiée, possède plus de 200 actifs Web proposant de nombreux contenus à ses clients. En utilisant Apache Spark Streaming sur Amazon EMR, la rédaction de Hearst peut suivre en temps réel les articles les plus consultés et les thèmes qui suscitent le plus d'intérêt.
CrowdStrike
CrowdStrike assure la protection des Endpoints pour mettre fin aux failles de sécurité. L'entreprise utilise Amazon EMR avec Spark pour traiter des centaines de téraoctets de données d'événements et les déployer dans des descriptions comportementales de niveau supérieur sur les hôtes. À partir de ces informations, CrowdStrike peut rapprocher les données d'événements et identifier la présence d'opérations malveillantes.
En savoir plus sur la tarification d'Amazon EMR