2017-10-06 14 views
0

Donc, tout en développant des programmes étincelles, j'utilise ma machine locale et donc je dois configurer Master sur "local". Cependant, quand je soumets le pot construit à partir de mon programme développé localement, je veux évidemment ne pas utiliser le mode "local".En code spark gérer conf.setMaster() en utilisant un fichier config pour autoset local ou yarn-cluster

Comment puis-je utiliser typesafeconfig peut-être de définir « local » lors du test et « fil-cluster » lors de la production?

EDIT:

Sur la base de la solution de @Shaido, pour IntelliJ IDEA:

Aller à: run-> edir confirgurations-> Dans la configuration série d'applications: VM options = -Dspark.master=local[*]

Répondre

0

Si vous utilisez un IDE, vous n'avez pas besoin de coder en dur setMaster dans le code.

Pour Eclipse, vous pouvez aller à "Run configurations" -> "Arguments" -> "arguments VM" et ajouter

-Dspark.master=local[*] 

Cela utilisera tous les cœurs disponibles sur place lors de l'exécution. Les autres IDE devraient avoir des configurations similaires. De cette façon, il n'est pas nécessaire d'ajouter quoi que ce soit au code lui-même.

Lors de l'exécution sur le cluster, utilisez:

spark-submit --master yarn --deploy-mode cluster 
0

Idéalement yarn-cluster ou local devrait venir en entrée de ligne de commande avec spark-submit et non codé en dur dans le code. Vous pouvez passer

spark-submit --master yarn --deploy-mode cluster in spark 2.1 

si vous soumettez du cluster et local si vous soumettez du local.