2017-09-22 5 views
3

Nous avons récemment mis à jour spark à 2.2.0 dans notre application et cela apporte des jacks Jackson 2.6.5 dans le runtime.Spark et élastique provoquant le chevauchement de jackson

Mais nous avons d'autres services qui ont besoin de Jackson 2.8.6 (en raison de Elastic 5.5.0) le service a un manifeste qui se réfère à Jackson 2.8.6 à partir du dossier lib de l'application.

Donc, il y a deux versions de pots Jackson chargés dans l'exécution et l'étincelle est de choisir un mauvais (2.8.6 à partir du dossier lib au lieu de 2.6.5 à partir de son propre dossier pots)

Sur les fenêtres de la version choisi est la bonne, bien que les deux versions soient toujours chargées dans le runtime.

Mais cela échoue sous Linux.

Comment pouvons-nous résoudre ce problème?

+0

comment sont soumettaient travail d'étincelle vous est-il par étincelle soumettre? si plz mentionnez les détails de la commande complète –

Répondre

2

Vous pouvez ajouter des jars au chemin de classe programatically using addjar, dans le fichier spark-defaults.conf ou avec les indicateurs spark-submit.

De plus, nous avons 2 propriétés de runtime-environment docs ici pour atténuer les conflits

spark.driver.userClassPathFirst 

false par défaut (expérimental) Que ce soit pour donner des pots ajoutés par l'utilisateur priorité sur propres pots de Spark lorsque les cours de chargement dans le pilote. Cette fonctionnalité peut être utilisée pour atténuer les conflits entre les dépendances de Spark et les dépendances de l'utilisateur. Remarque: Il s'agit actuellement d'une fonctionnalité expérimentale . Ceci est utilisé en mode cluster uniquement.

spark.executor.userClassPathFirst 

false par défaut (expérimental) Mêmes fonctionnalités que spark.driver.userClassPathFirst, mais appliqué à des cas exécuteur testamentaire.

Propriétés situé directement sur la SparkConf prennent plus haute priorité, puis drapeaux passés à spark-submit ou spark-shell, puis options dans le fichier spark-defaults.conf

+0

Ashwini: si vous allez bien, acceptez la réponse en tant que propriétaire. Merci! –