8
votes

Paramètres par défaut de l'étincelle de conf EMR

J'utilise le fichier de configuration conformément aux guides Configurer Spark pour configurer la configuration EMR sur AWS, par exemple, la modification de spark.executor.extraClassPath se fait via les paramètres suivants:

{
     "Classification": "spark-defaults",
     "Properties": {
         "spark.executor.extraClassPath": "{$extraClassPath}:/home/hadoop/mongo-hadoop-spark.jar",
     }
}

Cela fonctionne parfaitement et changez spark.executor.extraClassPath sur emr spark conf, mais emr a des chemins par défaut prédéfinis dans spark.executor.extraClassPath , donc au lieu d'écraser le spark.executor .extraClassPath .Je voudrais savoir s'il existe un moyen d'ajouter le chemin et de conserver les chemins par défaut tels que

{
     "Classification": "spark-defaults",
     "Properties": {
         "spark.executor.extraClassPath": "/home/hadoop/mongo-hadoop-spark.jar",
     }
}


3 commentaires

Je peux fournir manuellement le chemin par défaut par copier-coller, mais je souhaite rester le chemin par défaut cohérent d'AWS.


Le problème ici est que ce n'est pas un spark.executor.extraClassPath n'est pas une variable d'environnement, vous ne pourrez donc pas utiliser l'exportation pour ajouter un chemin à l'autre ...


Ouais je sais. Peut-être que j'ai besoin de le faire de manière sale ... En ajoutant une étape au bootstrap emr après la présence de spark conf, utilisez sed pour grep la ligne et ajouter le chemin ... @ eliasah


3 Réponses :


0
votes

Spécification du chemin complet pour tous les pots supplémentaires pendant que Job sumit fonctionnera pour vous.

- pots

Cette option soumettra ces fichiers jars à tous les exécuteurs et ne changera pas le chemin de classe supplémentaire par défaut

Une autre option que je connais mais je ne l'ai essayée qu'avec Yarn conf, je ne suis pas sûr de l'EMR

./bin/spark-submit --class "SparkTest" --master local [*] --jars /fullpath/first.jar,/fullpath/second.jar /fullpath/your-program.jar


3 commentaires

L'ajout de --jars aide le cas lors de la soumission du travail Spark, alors que nous utilisons également notebook qui prend Spark conf pour la configuration du notebook.


Avec notebook, vous parlez de configuration locale pour le développement?


Non, cahier intégré emr, qui est une option sélectionnable pour la configuration emr.



0
votes

Vous pouvez mettre "spark.jars" dans spark-defaults.conf donc même si vous utilisez notebook, cette configuration sera utilisée. J'espère que cela résoudra votre problème


2 commentaires

J'ai essayé {"Classification": "spark-defaults", "Properties": {"spark.jars": "/home/hadoop/mongo-hadoop-spark.jar",}} ne fonctionne pas


et j'ai essayé {"Classification": "spark-defaults", "Properties": {"spark.jars": ["/home/hadoop/mongo-hadoop-spark.jar"],} échoué avec quand j'essaye de créer un cluster.



1
votes

Vous pouvez le spécifier dans votre modèle emr comme suit

Classification: spark-defaults
          ConfigurationProperties:
            spark.jars: Your jar location


0 commentaires