Comment remplacer Étincelle de log4j.propriétés pour le conducteur?
Je suis en train de remplacer Étincelle par défaut de log4j.properties
, mais je n'ai pas eu de chance. J'ai essayé de l'adjonction, à l'étincelle soumettre:
--conf "spark.executor.extraJavaOptions=Dlog4j.configuration=/tmp/log4j.properties"
--conf "spark.driver.extraJavaOptions=-Dlog4j.configuration=/tmp/log4j.properties"
Mais cela ne semble pas fonctionner. J'ai aussi essayé d'utiliser --files
option dans spark-submit
et qui n'a pas l'air de fonctionner. Quiconque a la journalisation de la configuration si vous avez un log4j.properties
fichier par pilote et de ne pas utiliser la valeur par défaut?
Je suis en utilisant Mesos et le Marathon pour exécuter l'Étincelle pilote. Je n'étais pas sûr de la --files
option et je ne pouvais pas trouver des exemples de la façon dont il est utilisé et ce qu'il fait exactement.
Je tiens également à mentionner que j'ai téléchargé manuellement le log4j.properties
fichier à tous mes nœuds qui avait mes modifications pour les tests.
Version de Spark est 1.1.0-vous dès maintenant.
-Dlog4j.configuration=file:/tmp/log4j.properties
. Une autre option est d'ajouter le répertoire contenant votre log4j.propriétés à --driver-class-path
.Juste essayé de vos suggestions, mais toujours pas de chance. Il continue à prendre de la valeur par défaut de log4j.les propriétés de fichier de conf plutôt que d'utiliser celui que j'ai précisé.
Je pense que cela ne fonctionnait pas, parce que j'ai eu un log4j.les propriétés de fichier dans le répertoire conf et qui a été la première dans le classpath.
Je peux voir que la cause. Je pense que vous pouvez remplacer la conf dir par la mise en
SPARK_CONF_DIR
, mais je n'ai jamais essayé.comment avez-vous résolu ce problème finalement?
OriginalL'auteur ColinMc | 2015-03-03
Vous devez vous connecter pour publier un commentaire.
Pour le conducteur/shell, vous pouvez régler cela avec le
--driver-java-options
lors de l'exécution despark-shell
ouspark-submit
scripts.Spark vous ne pouvez pas définir
--conf spark.driver.extraJavaOptions
parce que c'est ensemble après la JVM est commencé. Lors de l'utilisation de l'étincelle soumettre des scripts--driver-java-options
succédanés de ces options dans le lancement de la JVM (par exemplejava -Dblah MyClass
) qui exécute le pilote.Noter que le
-Dlog4j.configuration
propriété doit être une URL valide, donc si son partir de quelque part sur le système de fichiers à utiliserfile:
URL. Si la ressource variable ne peut pas être converti à une URL, par exemple en raison d'un MalformedURLException, puis log4j recherche de la ressource dans le classpath.Par exemple, pour utiliser une coutume log4j.fichier de propriétés;
OriginalL'auteur
Juste un couple de détails sont éteints.
La conf drapeaux devrait ressembler à ceci:
--conf spark.executor.extraJavaOptions="-Dlog4j.configuration=log4j.properties"
--conf spark.driver.extraJavaOptions="-Dlog4j.configuration=/tmp/log4j.properties"
--files /tmp/log4j.properties
Vous aurez également besoin d'utiliser la
--files
param télécharger lelog4j.properties
fichier pour le cluster, où les liquidateurs peuvent l'obtenir. Aussi, comme les configs sont indiqués ci-dessus suppose que vous utilisezclient
mode, danscluster
les deux configs serait d'utiliser le même chemin relatif:-Dlog4j.configuration=log4j.properties
P. S. si votre journalisation des remplacements nécessitent également des dépendances supplémentaires que vous pourriez avoir besoin de fournir d'eux:
--conf spark.driver.extraClassPath=custom-log4j-appender.jar
Voir: personnalisé-log4j-appender-en-spark-exécuteurBonne chance
OriginalL'auteur
Je ne pouvais pas faire le
ou
de travail.
Le seul qui fonctionne pour moi est le-pilote-java-options.
OriginalL'auteur
Il y a de multiples façons d'y parvenir, mais cela dépend de votre/de l'application a besoin pour choisir le meilleur pour votre cas d'utilisation -
Si log4j.propriétés est présent dans votre bocal à la racine du classpath, alors vous pouvez sauter fichier: dans la commande, comme ci-dessous
--conf 'étincelle.le pilote.extraJavaOptions=-Dlog4j.configuration=log4j.propriétés'
--conf 'étincelle.exécuteur testamentaire.extraJavaOptions=-Dlog4j.configuration=log4j.propriétés'
Par l'expédition de votre log4j.fichier de propriétés de fil et de fournir un supplément d'options java pour susciter Pilote et Exécuteur testamentaire, de cette façon, log4j.propriétés à chaque nœud n'est pas nécessaire, le fil sera de gérer dans ce scénario, utilisez la commande ci-dessous
En changeant l'étincelle conf d'étincelle OU de log4j par défaut.fichier de propriétés
J'ai essayé toutes ces et a travaillé pour moi, je suggérerais également passer par la rubrique "le Débogage de votre Application" en dessous de l'étincelle post qui est vraiment utile -
https://spark.apache.org/docs/latest/running-on-yarn.html
OriginalL'auteur
Je ne crois pas que le
spark.driver.extraJavaOptions
paramètre existe. Pourspark.executor.extraJavaOptions
il semble que vous avez une faute de frappe. Essayez ceci:Comment puis-je faire ce travail avec DME? Est-ce un paramètre à
aws emr
commande? Comment voulez-vous pousser un fichier de configuration de l'hôte avant l'exécution du travail?OriginalL'auteur