2016-04-27 6 views
0

hadoopを使用するAmazon ElasticMapReduceサービスのaws sdk ruby​​を使用してステップを実行しようとしています。クラスタおよびステップは、ステップは常に失敗しますが、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/" 
      ] 
      }, 
     }, 
     ], 
    }) 
関連する問題