Вы начинаете с создания потокового задания по умолчанию (которое запускает пример wordcount). На этом этапе вы используете идентификатор потока работ для добавления других ваших шагов. В моем примере первое задание mapreduce сохраняет результаты в S3-контейнере. Этот результат затем становится входом для второй работы. Если вы войдете в консоль AWS, вы увидите их на вкладке Шаги .
Вы можете продолжать цепочку заданий таким образом, поскольку флаг - в реальном времени гарантирует, что кластер не отключится, пока вы не завершите его вручную. Просто не забудьте сделать это, когда последний шаг будет завершен (рабочий процесс вернется в состояние ОЖИДАНИЯ), в противном случае вы будете платить за простой.
$ 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