2017-05-17 17 views
2

マスターとクラスタ・デプロイ・モードとして糸を使用してAWS EMRクラスターを実行しています。スパーク・ジョブ送信:AWS EMRステップまたはコマンドライン・スパーク・サブミット

aws emr add-steps --cluster-id j-2AXXXXXXGAPLF --steps Type=Spark,Name="Spark Program",ActionOnFailure=CONTINUE,Args=[--class,org.apache.spark.examples.SparkPi,/usr/lib/spark/lib/spark-examples.jar,10] 

私の教授は、私がノードを経由をマスターするファイルを移動することで、私のスパーク申請書を提出お勧めします。私は、いわゆる「スパーク・ステップ」でAWS CLIを使用して、次のようなコマンドを使用して火花提出ランを読んでチュートリアルのすべてSCPを実行して、SSH経由でアプリケーションを実行してください:

ssh [email protected] 

次に、データファイルをシェル経由でHDFSに保存します。そして、最終的に私は単純に火花提出実行します:

spark-submit --master yarn --deploy-mode cluster my_spark_app.py my_hdfs_file.csv 

マスターノードにSSH経由で​​を実行している対AWS CLIを通じて「スパークステップ」を提出するとの違いは何ですか?私のSparkアプリケーションは、マスターノードからジョブを送信することによって分散して実行されますか?

答えて

2

EMRステップの送信は、アマゾン独自のカスタムステップ提出プロセスを使用しています。これは、比較的軽いラッパー抽象化であり、それ自体がspark-submitを呼び出します。根本的に違いはありませんが、プラットフォームには依存したくない(Amazonにはロックされていない)場合は、SSH戦略を使用するか、リモート提出やお気に入りのようなより高度な提出戦略をLivyを使って試してみてください。

関連する問題