2016-12-09 1 views
1

Spark a native support by EMR. Lors de l'utilisation de l'interface Web EMR pour créer un nouveau cluster, il est possible d'ajouter une étape personnalisée qui exécuterait une application Spark au démarrage du cluster, essentiellement un démarrage automatique après le démarrage du cluster.quoi spécifier comme maître d'étincelle lors de l'exécution sur amazon emr

Je me demandais comment spécifier le nœud maître à la SparkConf dans l'application, lors du démarrage du cluster EMR et soumettre le fichier jar à travers l'étape EMR désigné?

Il n'est pas possible de connaître au préalable l'adresse IP du cluster maître, comme ce serait le cas si je commençais le cluster manuellement, puis utilisais les informations pour construire dans mon application avant d'appeler spark-submit.

extrait de code:

SparkConf conf = new SparkConf().setAppName("myApp").setMaster("spark:\\???:7077"); 
JavaSparkContext sparkContext = new JavaSparkContext(conf); 

Notez que je demande sur le mode d'exécution « cluster », de sorte que le programme pilote fonctionne sur le cluster aussi bien.

Répondre

1

Réponse courte: non. Réponse plus longue: Une URL maître comme "spark: // ..." est pour Spark Standalone, mais EMR utilise Spark sur YARN, donc l'URL maître doit être juste "fil". Ceci est déjà configuré pour vous dans spark-defaults.conf, donc quand vous lancez spark-submit, vous n'avez même pas besoin d'inclure "--master ...". Cependant, puisque vous posez des questions sur le mode d'exécution de cluster (en fait, cela s'appelle "mode de déploiement"), vous pouvez spécifier "--master yarn-cluster" (obsolète) ou "--deploy-mode cluster" (préféré). Cela fera fonctionner le pilote Spark sur un mode de cluster aléatoire plutôt que sur le maître EMR.

+0

Je demandais spécifiquement comment définir SparkConf dans l'application (comme indiqué dans l'extrait de code). En mode local, en omettant la directive setMaster, org.apache.spark.SparkException: Une URL maître doit être définie dans votre configuration. Donc j'étais inquiet, si le même problème se produisait sur le cluster. – user3209815

+0

Non, la même erreur ne se produirait pas sur le cluster, car l'URL principale par défaut est définie dans spark-defaults.conf. Ma réponse s'applique si vous posez des questions sur les arguments passés à spark-submit ou les propriétés définies sur SparkConf dans le code. –