Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Architecture et couches de service Amazon EMR
L'architecture du service Amazon EMR se compose de plusieurs couches, chacune fournissant certaines fonctions et fonctionnalités au cluster. Cette section fournit une présentation de ces couches et de leurs composants.
Dans cette rubrique
Stockage
La couche de stockage inclut les différents systèmes de fichiers qui sont utilisés avec votre cluster. Il existe plusieurs types d'options de stockage, décrits ci-dessous.
Système de fichiers distribué Hadoop (HDFS)
Le système de fichiers distribué Hadoop (HDFS) est un système de fichiers évolutif, distribué pour Hadoop. Le système HDFS répartit les données qu'il stocke entre les instances dans le cluster, stockant plusieurs copies des données sur différentes instances pour garantir qu'aucune donnée n'est perdue en cas de défaillance d'une instance individuelle. HDFS est un stockage éphémère qui est récupéré lorsque vous mettez fin à un cluster. Le HDFS est utile pour mettre en cache les résultats intermédiaires pendant le MapReduce traitement ou pour les charges de travail comportant des E/S aléatoires importantes.
Pour plus d'informations, consultez la rubrique Options et comportement du stockage des instances dans Amazon EMR de ce guide ou le guide de l'utilisateur HDFS
Système de fichiers EMR (EMRFS)
Avec le système de fichiers EMR (EMRFS), Amazon EMR étend Hadoop pour ajouter la possibilité d'accéder directement aux données stockées dans Amazon S3 comme s'il s'agissait d'un système de fichiers de type HDFS. Vous pouvez utiliser HDFS ou Amazon S3 en tant que système de fichiers dans votre cluster. Le plus souvent, Amazon S3 est utilisé pour stocker les données d'entrée et sortie et les résultats intermédiaires sont stockés dans HDFS.
Système de fichiers local
Le système de fichiers local fait référence à un disque connecté localement. Lorsque vous créez un cluster Hadoop, chaque nœud est créé à partir d'une EC2 instance Amazon fournie avec un bloc préconfiguré de stockage sur disque préconnecté appelé magasin d'instance. Les données relatives aux volumes de stockage de l'instance ne sont conservées que pendant le cycle de vie de l' EC2instance Amazon.
Gestion des ressources de cluster
La couche de gestion des ressources est responsable de la gestion des ressources du cluster et de la planification des travaux de traitement des données.
Par défaut, Amazon EMR utilise YARN (Yet Another Resource Negotiator), un composant introduit dans Apache Hadoop 2.0 pour gérer de manière centralisée les ressources de cluster pour plusieurs infrastructures de traitement de données. Cependant, il existe d'autres cadres et applications proposés dans Amazon EMR qui n'utilisent pas YARN comme gestionnaire de ressources. Amazon EMR dispose également d'un agent sur chaque nœud, qui administre les composants YARN, maintient le cluster en bonne santé et communique avec le service Amazon EMR.
Les instances Spot étant souvent utilisées pour exécuter des nœuds de tâches, Amazon EMR dispose d'une fonctionnalité par défaut pour planifier les tâches YARN. Cela empêche l'échec de l'exécution des tâches lorsque les nœuds de tâches exécutés sur des instances Spot sont fermés. Pour ce faire, Amazon EMR autorise les processus principaux de l'application à s'exécuter uniquement sur les nœuds principaux. Le processus principal de l'application contrôle les tâches en cours d'exécution et doit rester actif pendant toute la durée de vie de la tâche.
Les versions 5.19.0 et ultérieures d'Amazon EMR utilisent la fonctionnalité intégrée d'étiquettes de nœuds YARNyarn-site
et capacity-scheduler
sont configurées par défaut afin que le planificateur de capacité YARN et le planificateur équitable tirent parti des étiquettes des nœuds. Amazon EMR étiquette automatiquement les nœuds principaux avec l'étiquette CORE
et définit les propriétés de manière à ce que les maîtres d'applications soient planifiés uniquement sur les nœuds portant le label CORE. La modification manuelle des propriétés rattachées dans les classifications de configuration de yarn-site et de capacity-scheduler, ou directement dans les fichiers XML rattachés, pourrait interrompre cette fonctionnalité ou la modifier.
Cadres de traitement de données
La couche des infrastructures de traitement des données est le moteur utilisé pour traiter et analyser les données. Il existe de nombreuses infrastructures disponibles qui s'exécutent sur YARN ou qui possèdent leur propre gestion des ressources. Des infrastructures différentes sont disponibles pour les différents types de traitement requis, tels que les traitements par lots, interactif, en mémoire, de streaming, etc. L'infrastructure que vous choisissez dépend de votre cas d'utilisation. Elle affecte les langues et les interfaces disponibles à partir de la couche d'application, qui est la couche utilisée pour interagir avec les données à traiter. Les principaux frameworks de traitement disponibles pour Amazon EMR sont MapReduce Hadoop et Spark.
Hadoop MapReduce
Hadoop MapReduce est un modèle de programmation open source pour l'informatique distribuée. Il simplifie le processus d'écriture d'applications distribuées en parallèle en gérant l'ensemble de la logique, alors que vous fournissez les fonctions Map et Reduce. La fonction Map mappe les données aux ensembles de paires clé-valeur nommées résultats intermédiaires. La fonction Reduce, quant à elle, combine les résultats intermédiaires et leur applique d'autres algorithmes afin de générer la sortie finale. Plusieurs frameworks sont disponibles MapReduce, tels que Hive, qui génère automatiquement les programmes Map et Reduce.
Pour plus d'informations, consultez la rubrique How map and reduce operations are actually carried out
Apache Spark
Spark est une infrastructure de cluster et un modèle de programmation pour le traitement de charges de travail de big data. Comme Hadoop MapReduce, Spark est un système de traitement distribué open source qui utilise des graphes acycliques dirigés pour les plans d'exécution et une mise en cache en mémoire pour les ensembles de données. Lorsque vous exécutez Spark sur Amazon EMR, vous pouvez utiliser EMRFS pour accéder directement à vos données dans Amazon S3. Spark prend en charge plusieurs modules de requête interactifs comme SparkSQL.
Pour plus d'informations, consultez la rubrique relative à Apache Spark sur les clusters Amazon EMR du Guide de version Amazon EMR.
Applications et programmes
Amazon EMR prend en charge de nombreuses applications, dont Hive, Pig et la bibliothèque Spark Streaming, pour fournir des fonctionnalités telles que l'utilisation de langages de niveau supérieur pour créer des charges de travail de traitement, l'exploitation d'algorithmes de machine learning, l'élaboration d'applications de traitement de flux et la création d'entrepôts de données. En outre, Amazon EMR prend également en charge des projets open source qui possèdent leurs propres fonctionnalités de gestion de cluster au lieu d'utiliser YARN.
Vous utilisez diverses bibliothèques et divers langages pour interagir avec les applications que vous exécutez dans Amazon EMR. Par exemple, vous pouvez utiliser Java, Hive ou Pig avec MapReduce ou Spark Streaming, Spark SQL et GraphX avec Spark. MLlib
Pour plus d'informations, consultez le Guide de version Amazon EMR.