2016-04-27 58 views
0

我试图运行使用aws sdk ruby​​的步骤来使用hadoop的Amazon ElasticMapReduce服务,而我可以创建集群和步骤,步骤经常失败,而手动设置时不使用Web界面无法运行程序“-files”(在目录“。”中):error = 2,没有这样的文件或目录

emr = Aws::EMR::Client.new 
    cluster_id = "*******" 
    resp = emr.add_job_flow_steps({ 
     job_flow_id: cluster_id, # required 
     steps: [ # required 
     { 
      name: "TestStep", # required 
      action_on_failure: "CANCEL_AND_WAIT", # accepts TERMINATE_JOB_FLOW, TERMINATE_CLUSTER, CANCEL_AND_WAIT, CONTINUE 
      hadoop_jar_step: { # required 
      jar: 'command-runner.jar', 
      args:[ 
       "-files", 
       "s3://source123/mapper.py,s3://source123/source_reducer.py", 
       "-mapper", 
       "mapper.py", 
       "-reducer", 
       "source_reducer.py", 
       "-input", 
       "s3://source123/input/", 
       "-output", 
       "s3://source123/output/" 
      ] 
      }, 
     }, 
     ], 
    }) 

我得到的错误是这样

Cannot run program "-files" (in directory "."): error=2, No such file or directory

任何线索?

回答

0

似乎加入Hadoop的流就像下面

emr = Aws::EMR::Client.new 
    cluster_id = "*******" 
    resp = emr.add_job_flow_steps({ 
     job_flow_id: cluster_id, # required 
     steps: [ # required 
     { 
      name: "TestStep", # required 
      action_on_failure: "CANCEL_AND_WAIT", # accepts TERMINATE_JOB_FLOW, TERMINATE_CLUSTER, CANCEL_AND_WAIT, CONTINUE 
      hadoop_jar_step: { # required 
      jar: 'command-runner.jar', 
      args:[ 
       "hadoop-streaming", 
       "-files", 
       "s3://source123/mapper.py,s3://source123/source_reducer.py", 
       "-mapper", 
       "mapper.py", 
       "-reducer", 
       "source_reducer.py", 
       "-input", 
       "s3://source123/input/", 
       "-output", 
       "s3://source123/output/" 
      ] 
      }, 
     }, 
     ], 
    }) 
相关问题