EMRArchitecture Amazon et couches de service - Amazon EMR

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.

EMRArchitecture Amazon et couches de service

L'architecture des EMR services Amazon se compose de plusieurs couches, chacune fournissant certaines capacités et fonctionnalités au cluster. Cette section fournit une présentation de ces couches et de leurs composants.

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 distribué et évolutif pour Hadoop. HDFSdistribue les données stockées entre les instances du cluster, en stockant plusieurs copies des données sur différentes instances afin de garantir qu'aucune donnée n'est perdue en cas de défaillance d'une instance individuelle. HDFSest un stockage éphémère qui est récupéré lorsque vous mettez fin à un cluster. HDFSest 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 Options et comportement du stockage des instances dans Amazon EMR ce guide ou consultez le guide de HDFSl'utilisateur sur le site Web d'Apache Hadoop.

EMRSystème de fichiers (EMRFS)

À l'aide du système de EMR fichiers (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 similaire. HDFS Vous pouvez utiliser l'un HDFS ou l'autre ou Amazon S3 comme système de fichiers dans votre cluster. Le plus souvent, Amazon S3 est utilisé pour stocker les données d'entrée et de sortie et les résultats intermédiaires y sont stockésHDFS.

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 du cluster pour plusieurs frameworks de traitement de données. Cependant, il existe d'autres frameworks et applications proposés sur Amazon EMR qui ne sont pas utilisés YARN comme gestionnaire de ressources. Amazon dispose EMR également d'un agent sur chaque nœud qui administre les YARN composants, assure le bon fonctionnement du cluster et communique avec AmazonEMR.

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 YARN tâches afin que l'exécution des tâches n'échoue pas 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 EMR versions 5.19.0 et ultérieures d'Amazon utilisent la fonctionnalité intégrée d'étiquettes de YARN nœuds pour y parvenir. (Les versions antérieures utilisaient un correctif de code). Les propriétés des classifications de capacity-scheduler configuration yarn-site et de configuration sont configurées par défaut afin que le planificateur de YARN capacité et le planificateur équitable tirent parti des étiquettes des nœuds. Amazon étiquette EMR automatiquement les nœuds principaux avec cette CORE étiquette et définit les propriétés de telle sorte que les maîtres d'applications soient planifiés uniquement sur les nœuds dotés de cette CORE étiquette. La modification manuelle des propriétés associées dans les classifications de configuration Yarn-Site et Capacity-Scheduler, ou directement dans XML les fichiers associé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 nombreux frameworks disponibles qui s'exécutent sur YARN ou disposent de 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 Hadoop MapReduce 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 sur le site web Wiki d'Apache Hadoop.

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 AmazonEMR, vous pouvez accéder directement EMRFS à vos données dans Amazon S3. Spark prend en charge plusieurs modules de requêtes interactifs tels que SparkSQL.

Pour plus d'informations, consultez Apache Spark sur les EMR clusters Amazon dans le Amazon EMR Release Guide.

Applications et programmes

Amazon EMR prend en charge de nombreuses applications telles que Hive, Pig et la bibliothèque Spark Streaming afin de fournir des fonctionnalités telles que l'utilisation de langages de haut niveau pour créer des charges de travail, l'exploitation d'algorithmes d'apprentissage automatique, la création d'applications de traitement de flux et la création d'entrepôts de données. En outre, Amazon prend EMR également en charge les projets open source dotés de leurs propres fonctionnalités de gestion de clusters au lieu de les utiliserYARN.

Vous utilisez différentes bibliothèques et langages pour interagir avec les applications que vous exécutez sur AmazonEMR. Par exemple, vous pouvez utiliser Java, Hive ou Pig avec MapReduce ou Spark Streaming SQLMLlib, Spark et GraphX avec Spark.

Pour plus d'informations, consultez le Amazon EMR Release Guide.