Comment se connecter à l'aide de log4j de système de fichiers local à l'intérieur d'une Étincelle application qui s'exécute sur le FIL?

Je suis en train de construire un Apache Spark Streaming demande et qui ne peuvent pas se connecter à un fichier sur le système de fichiers local lors de l'exécution sur le FILS. Comment peuvent-ils y parvenir?

J'ai mis log4.properties fichier de sorte qu'il peut réussir à écrire dans un fichier journal dans /tmp répertoire du système de fichiers local (voir ci-dessous partiellement):

log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=/tmp/application.log
log4j.appender.file.append=false
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

Quand je lance mon application Spark localement à l'aide de la commande suivante:

spark-submit --class myModule.myClass --master local[2] --deploy-mode client myApp.jar

Il fonctionne très bien et je peux voir que les messages du journal sont écrits à /tmp/application.log sur mon système de fichiers local.

Mais quand je lance la même demande par le biais de FILS, par exemple,

spark-submit --class myModule.myClass --master yarn-client  --name "myModule" --total-executor-cores 1 --executor-memory 1g myApp.jar

ou

spark-submit --class myModule.myClass --master yarn-cluster  --name "myModule" --total-executor-cores 1 --executor-memory 1g myApp.jar

Je ne vois aucune /tmp/application.log sur le système de fichiers local de la machine sur laquelle tourne le FIL.

Ce qui me manque.

  • J'ai juste collé à votre section de log4j.propriétés et il a couru localement de façon similaire à la vôtre, mais ce n'est pas la création de tout fichier journal pour mon /tmp. ai-je raté quelque chose?
  • J'ai trouvé ce post utile- stackoverflow.com/questions/27781187/...
InformationsquelleAutor Emre Sevinç | 2015-02-11