如何在亚马逊的弹性mapreduce(emr)集群中运行mapreduce作业?

时间:2012-03-08 16:55:31

标签: hadoop mapreduce elastic-map-reduce amazon-emr

我正在尝试学习如何在亚马逊的EMR上运行java Map / Reduce(M / R)作业。我关注的文档在http://aws.amazon.com/articles/3938。我在Windows 7电脑上。

当我尝试运行此命令时,会显示帮助信息。

./elasticmapreduce-client.rb RunJobFlow streaming_jobflow.json 

当然,因为我在Windows机器上,我实际输入此命令。我不知道为什么,但对于这个特殊的命令,没有一个Windows版本(所有命令成对显示,一个用于* nix,一个用于Windows)。

 ruby elastic-mapreduce RunJobFlow my_job.json

我的问题是如何使用命令行界面(在Windows上)从Windows向亚马逊的EMR提交/运行作业?我试过在网上搜索,但我被带到了野外的地方。任何帮助表示赞赏。

感谢。

3 个答案:

答案 0 :(得分:1)

嗯。我不确定RunJobFlow的例子有多久了......我个人会忽略它。

你能跑吗?

localhost$ elastic-mapreduce --describe

一旦你可以,那么你应该直接在群集上玩,以摆脱你需要做的确切步骤......值得这样做,这样你就不必多次启动/停止群集。

localhost$ elastic-mapreduce --create --alive --num-instances 1
localhost$ elastic-mapreduce -j j-YOUR_ID_HERE --ssh

cluster$ hadoop jar my.jar -D some=1 -D args=1 blah blah
cluster$ hadoop jar some_other_jar.jar -D foo -D bar
cluster$ ^D

localhost$ elastic-mapreduce -j j-YOUR_ID_HERE --terminate

然后当你对这些步骤感到满意并且你需要让它无头时(例如,来自cron)你可以让EMR协调这些步骤(包括群集在结束时自我终止)

localhost$ elastic-mapreduce --create --num-instances 1
localhost$ elastic-mapreduce --jar my_jar.jar --args "-D,some=1,-D,args=1,blah,blah"
localhost$ elastic-mapreduce --jar some_other_jar.jar --args "-D,foo,-D,bar"

如果你需要更复杂的步骤,我只会探索--json的东西,它有点神秘,很难在第一时间得到正确...

答案 1 :(得分:1)

要在EMR上运行流式传输作业,首先需要通过以下命令创建群集:

ruby elastic-mapreduce --create --alive --plain-output --master-instance-type m1.xlarge 
--slave-instance-type m1.xlarge --num-instances 6  --name "Some Job Cluster" --bootstrap-action s3://<path-to-a-bootstrap-script> 

这将返回一个jobid,它看起来像:j-ABCD7EF763

现在,您可以通过以下命令提交作业步骤:

ruby elastic-mapreduce -j j-ABCD7EF763 --stream --step-name "my step name" --mapper
s3://<some-path>/mapper-script.rb --reducer s3://<some=path>/reducer-script.rb --input 
s3://<input-path> --output s3://<output-path> 

您也可以直接运行作业而不是运行流作业,在这种情况下,群集将在作业结束时自行终止。

答案 2 :(得分:1)

尝试使用--json选项。

e.g。 ./elastic-mapreduce --create --name Multisteps --json wordcount_jobflow.json

您需要仅使用Steps修剪json文件(删除[]之外的所有内容)。有一个讨论的帖子:https://forums.aws.amazon.com/thread.jspa?threadID=35093

相关问题