Concepts communs pour les appels d'API - Amazon EMR

Concepts communs pour les appels d'API

Lorsque vous écrivez une application qui appelle l'API Amazon EMR, plusieurs concepts s'appliquent lors de l'appel de l'une des fonctions de wrapper d'un kit SDK.

Points de terminaison pour Amazon EMR

Un point de terminaison est une URL qui est le point d'entrée d'un service Web. Chaque demande de service Web doit contenir un point de terminaison. Ce point de terminaison spécifie la région AWS où les clusters sont créés, décrits ou arrêtés. Il a le format elasticmapreduce.regionname.amazonaws.com. Si vous spécifiez le point de terminaison général (elasticmapreduce.amazonaws.com), Amazon EMR dirige votre demande vers un point de terminaison dans la région par défaut. Pour les comptes créés le 8 mars 2013 ou après cette date, la région par défaut est us-west-2. Pour les comptes plus anciens, la région par défaut est us-east-1.

Pour de plus amples informations sur les points de terminaison disponibles pour Amazon EMR, consultez Régions et points de terminaison dans le Référence générale d'Amazon Web Services.

Spécification de paramètres de cluster dans Amazon EMR

Les paramètres Instances vous permettent de configurer le type et le nombre d'instances EC2 pour créer des nœuds afin de traiter les données. Hadoop répartit le traitement des données entre plusieurs nœuds du cluster. Le nœud maître est responsable du suivi de l'intégrité des nœuds principaux et de tâches, et de l'interrogation des nœuds pour obtenir le statut des résultats des travaux. Les nœuds principaux et de tâches effectuent le traitement réel des données. Si vous possédez un cluster à nœud unique, ce nœud fait office de nœud maître et principal.

Le paramètre KeepJobAlive d'une demande RunJobFlow détermine s'il convient d'arrêter le cluster lorsqu'il n'a plus d'étapes de cluster à exécuter. Définissez cette valeur sur False lorsque vous savez que le cluster s'exécute comme prévu. Lorsque vous résolvez les problèmes liés au flux de travail et ajoutez des étapes alors que l'exécution du cluster est suspendue, définissez cette valeur sur True. Cela réduit le temps et les coûts requis pour charger les résultats vers Amazon Simple Storage Service (Amazon S3), uniquement pour répéter le processus après avoir modifié une étape pour redémarrer le cluster.

Si KeepJobAlive a pour valeur true, après avoir réussi à terminer le travail du cluster, vous devez envoyer une demande TerminateJobFlows, sinon, le cluster continuera à s'exécuter et à générer des frais AWS.

Pour de plus amples informations sur les paramètres spécifiques à RunJobFlow, veuillez consulter RunJobFlow. Pour de plus amples informations sur les paramètres génériques dans la demande, consultez Paramètres de demande communs.

Zones de disponibilité dans Amazon EMR

Amazon EMR utilise des instances EC2 comme nœuds pour traiter les clusters. Ces instances EC2 ont des emplacements composés de régions et de zones de disponibilité. Les régions sont dispersées et situées dans des zones géographiques distinctes. Les zones de disponibilité sont des emplacements distincts dans une région, isolés des défaillances dans d'autres zones de disponibilité. Chaque zone de disponibilité fournit une connectivité réseau économique à faible latence aux autres zones de disponibilité de la même région. Pour obtenir la liste des points de terminaison et des régions Amazon EMR disponibles, consultez Régions et points de terminaison dans le Référence générale d'Amazon Web Services.

Le paramètre AvailabilityZone spécifie l'emplacement général du cluster. Ce paramètre est facultatif et, en général, nous déconseillons son utilisation. Quand le paramètre AvailabilityZone n'est pas spécifié, Amazon EMR sélectionne automatiquement la meilleure valeur AvailabilityZone pour le cluster. Vous pouvez trouver ce paramètre utile si vous souhaitez placer vos instances avec d'autres instances existantes en cours d'exécution, et que votre cluster doit lire ou écrire des données à partir de ces instances. Pour plus d'informations, consultez le Guide de l'utilisateur Amazon EC2 pour les instances Linux.

Comment utiliser des fichiers et des bibliothèques supplémentaires dans les clusters Amazon EMR

Parfois, vous pouvez apprécier d'utiliser des fichiers supplémentaires ou des bibliothèques personnalisées avec vos applications de mappage et de réduction. Par exemple, vous pouvez apprécier d'utiliser une bibliothèque qui convertit un fichier PDF en texte clair.

Pour mettre en cache un fichier afin que le mappeur ou le réducteur l'utilise dans le cadre du streaming Hadoop
  • Dans le champ args du fichier JAR, ajoutez l'argument suivant :

    -cacheFile s3://bucket/path_to_executable#local_path

    Le fichier, local_path, se trouve dans le répertoire de travail du mappeur et peut faire référence au fichier.