2017-05-17 3 views
2

Je cours un cluster AWS EMR en utilisant du fil comme mode de déploiement maître et cluster. Tous les tutoriels que je lis court étincelles soumettre en utilisant AWS CLI en soi-disant « Étapes Spark » à l'aide d'une commande similaire à ce qui suit:Soumission d'un job Spark: étape AWS EMR ou ligne de commande spark-submit

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] 

Mon professeur recommande-je soumettre mes demandes d'allumage par transfert de fichiers vers le noeud maître via SCP, puis en exécutant l'application via SSH:

ssh [email protected] 

ensuite, je mettrais les fichiers de données dans HDFS via le shell. Puis, finalement, je voudrais simplement lancer étincelle soumettre:

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

Quelle est la différence entre la présentation d'une « étape Spark » par AWS CLI par rapport à l'exécution spark-submit via SSH dans un nœud maître? Mon application Spark fonctionnera-t-elle toujours de manière distribuée en soumettant les tâches du nœud maître?

Répondre

2

La soumission d'une étape EMR utilise le processus de soumission d'étape construit par Amazon, qui est une abstraction de wrapper relativement légère qui appelle elle-même spark-submit. Fondamentalement, il y a peu de différence, mais si vous souhaitez être indépendant de la plate-forme, utilisez la stratégie SSH ou essayez des stratégies de soumission encore plus avancées comme la soumission à distance ou l'un de mes favoris avec Livy.