【发布时间】:2014-06-14 10:15:40
【问题描述】:
Amazon EMR Documentation to add steps to cluster 表示单个 Elastic MapReduce 步骤可以向 Hadoop 提交多个作业。但是,Amazon EMR Documentation for Step configuration 建议单个步骤只能执行一次 hadoop-streaming.jar(即 HadoopJarStep 是 HadoopJarStepConfig 而不是 HadoopJarStepConfigs 数组)。
在一个步骤中向 Hadoop 提交多个作业的正确语法是什么?
【问题讨论】:
-
你能指定你要提交作业的api(语言)吗?我的意思是你想用哪种语言编写代码以在集群上提交EMR作业。
-
有一个 JSON 对象描述了您的工作流程,无论如何 EMR 都会读取该对象,因此您最初用于描述工作流程的语言并不重要——它被翻译成 JSON,例如,根据某些规范的 AWS CLI。我实际上不认为这个规范明确地允许一步提交多个作业到 Hadoop,但你可以使用 script_runner.jar 来做到这一点:docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/…。对此进行更深入探索的人可以写出答案。我会接受一个好的。
-
您找到解决方案了吗?我仍在寻找如何使用 AWS SDK 做到这一点。我正在使用 Javascript API。
-
当我尝试在 EMR 集群中运行多个 hadoop 作业时,它们都一个接一个地运行(我可以使用 yarn application -list 查看进度)。有没有办法并行运行所有这些 hadoop 作业?一次性将多个 hadoop 作业传递给他们会解决这个问题吗?如何在一个步骤中传递多个作业?
-
@Karshit 让我知道我刚刚写的答案是否适合您....
标签: hadoop amazon-web-services hadoop-streaming emr