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
コントローラは、これが実行されていると言いますか?