2017-05-02 21 views
0

aws cliを使用してEMRでスパークジョブを実行しようとしています。aws-cliからのEMRスパークジョブ

私が望むのは、サーバーの起動、ジョブの実行、終了です。

私は2段階のプロセス(まずサーバーを起動してからジョブを実行します)ができますが、1つのコマンドを送信するとエラーが発生します。

エラー:

Error: Cannot load main class from JAR file:/home/hadoop/spark/bin/spark-submit 
Run with --help for usage help or --verbose for debug output 
Command exiting with ret '1' 

それはjarファイル(またはメインクラス)を見つけることができないようなので、それが見えます。私はマスターを糸クラスターに設定してs3のジャーを検索するようにしました。メインクラスのクラスパスが正しいことを100%確信しています。

/usr/lib/hadoop/bin/hadoop jar /var/lib/aws/emr/step-runner/hadoop-jars/command-runner.jar spark-submit 
/home/hadoop/spark/bin/spark-submit --verbose --master yarn-cluster --class,co.path.test.TestJob s3://test/test-0.0.1-SNAPSHOT-jar-with-dependencies.jar s3://test/test-messages/1998* d s3://test/loaded 

すべてのアイデアは、私が何をめちゃくちゃにしています:

コマンド

aws emr create-cluster --name "Test auto run" --release-label emr-5.4.0 \ 
--applications Name=Spark --ec2-attributes KeyName=key-emr --instance-type m3.xlarge --instance-count 2 \ 
--log-uri s3://test/emr --steps Type=Spark,Name="Spark Program",ActionOnFailure=CONTINUE,,\ 
Args=[/home/hadoop/spark/bin/spark-submit,--verbose,--master,yarn-cluster,--class,co.path.test.TestJob,s3://test/test-0.0.1-SNAPSHOT-jar-with-dependencies.jar,\ 
's3://test/test-messages/1998*','d','s3://test/loaded'] \ 
--use-default-roles --auto-terminate 

コントローラは、これが実行されていると言いますか?

答えて

0

EMRステップタイプは、手順のAPI --stepsタイプに言及スパーク =スパークある場合は、ステップのコントローラーログに識別されるように、EMRは​​コマンドを追加し、あなたが通過する必要はありません。 STEP APIの引数として/home/hadoop/spark/bin/spark-submitを指定します。

エラーは、2つ目の/ home/hadoop/spark/bin/spark-submitを引数として使用していた2つのspark-submitのものでした。

ご覧ください:http://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-spark-submit-step.html

関連する問題