2010-10-31 15 views
0

J'ai écrit une application mapreduce pour hadoop et l'ai testée en ligne de commande sur une seule machine. Mon application utilise deux étapes Map1 -> Reduce1 -> Map2 -> Reduce2 Pour exécuter ce travail sur aws mapreduce, je suis ce lien http://aws.amazon.com/articles/2294. Mais je ne suis pas sûr de savoir comment utiliser le client CLI Ruby fournir par Amazon pour faire tout le travail décrit. S'il vous plaît guider.Comment utiliser le client Ruby CLI pour lancer un JobFlow basé sur une description JSON JobFlow sur Amazon Elastic MapReduce

Merci.

+0

La description de la question ne correspond pas exactement au titre. J'ai essayé de répondre à la question telle qu'elle est décrite. Peut-être que vous voulez développer la partie JSON? –

Répondre

0

Vous commencez par créer le flux de travaux en continu par défaut (qui exécute l'exemple wordcount). À ce stade, vous utilisez l'ID du flux de travaux pour ajouter vos autres étapes. Dans mon exemple, le premier travail mapreduce stocke ses résultats dans un compartiment S3. Ce résultat devient alors l'entrée pour le deuxième travail. Si vous allez dans la console AWS, vous verrez ceux-ci sous l'onglet Steps.

Vous pouvez continuer à enchaîner des travaux de cette manière, car l'indicateur --alive s'assure que le cluster ne s'arrête pas tant que vous ne l'avez pas terminé manuellement. N'oubliez pas de le faire lorsque la dernière étape est terminée (le flux de travaux retournera à l'état WAITING), sinon vous serez facturé pour le temps d'inactivité.

$ elastic-mapreduce --create --alive --stream --num-instances=1 --master-instance-type=m1.small 

Created job flow j-NXXXJARJARSXXX 
$ elastic-mapreduce -j j-NXXXJARJARSXXX --stream \ 
--input s3n://mybucket.data/2011/01/01/* \ 
--output s3n://mybucket.joblog/step1done-2011-01-01 \ 
--mapper s3n://mybucket.code/map.rb \ 
--reducer s3n://mybucket.code/reduce.rb 

Added jobflow steps 
$ elastic-mapreduce -j j-NXXXJAJARSXXX --stream \ 
--input s3n://mybucket.joblog/step1done-2011-01-01/part-* \ 
--output s3n://mybucket.joblog/job-results \ 
--mapper s3n://mybucket.code/map.rb \ 
--reducer s3n://mybucket.code/reduce.rb 

Added jobflow steps