Вы не можете сделать это с помощью веб-консоли, но с помощью API и инструментов программирования вы сможете добавить несколько шагов к длительной работе, что я и делаю. Таким образом, вы можете запускать задания один за другим в одном и том же долговременном кластере, не создавая заново каждый раз.
Если вы знакомы с Python, я настоятельно рекомендую библиотеку Boto . Другие инструменты AWS API также позволяют вам это делать.
Если вы следуете учебнику по Boto EMR , вы найдете несколько примеров:
Просто чтобы дать вам представление, вот что я делаю (с потоковыми заданиями):
# Connect to EMR
conn = boto.connect_emr()
# Start long-running job, don't forget keep_alive setting
jobid = conn.run_jobflow(name='My jobflow',
log_uri='s3://<my log uri>/jobflow_logs',
keep_alive=True)
# Create your streaming job
step = StreamingStep(...)
# Add the step to the job
conn.add_jobflow_steps(jobid, [step])
# Wait till its complete
while True:
state = conn.describe_jobflow(jobid).steps[-1].state
if (state == "COMPLETED"):
break
if (state == "FAILED") or (state == "TERMINATED") or (state == "CANCELLED"):
print >> sys.stderr, ("EMR job failed! Message = %s!") % (state)
sys.exit(1)
time.sleep (60)
# Create your next job here and add it to the EMR cluster
step = StreamingStep(...)
conn.add_jobflow_steps(jobid, [step])
# Repeat :)