Traitement des données avec Streaming - 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.

Traitement des données avec Streaming

Le streaming Hadoop est un utilitaire fourni avec Hadoop qui vous permet de développer des MapReduce exécutables dans des langages autres que Java. Le streaming est implémenté sous la forme d'un JAR fichier, vous pouvez donc l'exécuter depuis Amazon EMR API ou la ligne de commande comme un JAR fichier standard.

Cette section explique comment utiliser le streaming avec AmazonEMR.

Note

Le streaming Apache Hadoop est un outil indépendant. En tant que tel, ses fonctions et ses paramètres ne sont pas tous décrits ici. Pour plus d'informations sur le streaming Hadoop, rendez-vous sur http://hadoop.apache.org/docs/stable/hadoop-streaming/ HadoopStreaming .html.

Utilisation de l'utilitaire de streaming Hadoop

Cette section décrit comment utiliser l'utilitaire de streaming Hadoop.

1

Ecrivez votre exécutable mappeur et réducteur dans le langage de programmation de votre choix.

Suivez les instructions dans la documentation Hadoop pour écrire vos exécutable de diffusion en continu. Les programmes doivent lire leur entrée à partir de données d'entrée et de sortie standard par le biais de sortie standard. Par défaut, chaque ligne d'entrée/sortie représente un enregistrement et le premier onglet sur chaque ligne est utilisé comme séparateur entre la clé et la valeur.

2

Testez vos exécutables localement et chargez-les sur Amazon S3.

3

Utilisez l'interface de ligne de EMR commande Amazon ou EMR la console Amazon pour exécuter votre application.

Chaque script mappeur se lance comme un processus distinct dans le cluster. Chaque exécutable de réducteur remplace le résultat de l'exécutable du mappeur par la sortie de données du flux de travail.

Les paramètres input, output, mapper, et reducer sont requis par la plupart des applications de streaming. Le tableau suivant décrit ces paramètres et d'autres, facultatifs.

Paramètre Description Obligatoire
-input

Emplacement des données d'entrée sur Amazon S3.

Type : chaîne

Par défaut : aucun

Contrainte :URI. Si aucun protocole n'est spécifié, il utilise alors le système de fichiers par défaut du cluster.

Oui
-output

Emplacement sur Amazon S3 où Amazon EMR télécharge les données traitées.

Type : chaîne

Par défaut : aucun

Contrainte : URI

Par défaut : si aucun emplacement n'est spécifié, Amazon EMR télécharge les données vers l'emplacement spécifié parinput.

Oui
-mapper

Nom de l'exécutable du mappeur.

Type : chaîne

Par défaut : aucun

Oui
-reducer

Nom de l'exécutable du réducteur.

Type : chaîne

Par défaut : aucun

Oui
-cacheFile

Un emplacement Amazon S3 qui contient des fichiers que Hadoop peut copier dans votre répertoire de travail local (principalement pour améliorer les performances).

Type : chaîne

Par défaut : aucun

Contraintes : [URI] # [nom du lien symbolique à créer dans le répertoire de travail]

Non
-cacheArchive

JARfichier à extraire dans le répertoire de travail

Type : chaîne

Par défaut : aucun

Contraintes : [URI] # [nom du répertoire de liens symboliques à créer dans le répertoire de travail

Non
-combiner

Combine les résultats

Type : chaîne

Par défaut : aucun

Contraintes : nom de classe Java

Non

L'exemple de code suivant est un exécutable de mappeur écrit dans Python. Ce script fait partie de l' WordCount exemple d'application.

#!/usr/bin/python import sys def main(argv): line = sys.stdin.readline() try: while line: line = line.rstrip() words = line.split() for word in words: print "LongValueSum:" + word + "\t" + "1" line = sys.stdin.readline() except "end of file": return None if __name__ == "__main__": main(sys.argv)