2017-09-13 15 views
0

J'ai une question concernant l'utilisation log4j et son fichier de configuration log4j.properties dans les travaux Java for Spark.Personnaliser log4j pour le travail d'étincelle apache dans le cluster EMR

J'ai joint le log4j.properties avec mon fichier "jar" de travail Spark, après qu'il ait été envoyé au cluster EMR, mon application initialise le fichier log4j.properties.

Voici mon code exemple:

public static void initializeLogger() { 
      try { 
       Properties logProperties = new Properties(); 
       logProperties.load(RddReadUtils.class.getClassLoader() 
    .getResourceAsStream("resources/log4j.properties")); 
       PropertyConfigurator.configure(logProperties); 

      } catch (IOException e) { 
       e.printStackTrace(); 
      } 

     } 

Sur ma machine locale, il fonctionne, ne fonctionne pas dans le cluster DME. Quelqu'un peut-il aider?
Merci beaucoup

+0

êtes-vous exécution de ce code sur exécuteur testamentaire ou le pilote? vous pouvez également modifier le niveau de journalisation directement à l'aide de sparkContext. –

+0

Pouvez-vous me montrer un exemple concernant le niveau de journal de changement directement en utilisant sparkcontext? parce que mon application étincelle fonctionnant dans le cluster EMR, la fonction main() exécute par Driver – user2953788

+0

'sparkContext.setLogLevel (" DEBUG ")' –

Répondre

0

Lorsque vous exécutez votre travail sur le cluster, log4j utilisera le fichier de propriétés configuré dans le cluster. Cela est logique, car votre travail peut être plus indépendant de l'environnement.

Cependant, si vous souhaitez utiliser un fichier des propriétés spécifiques, vous pouvez effectuer les opérations suivantes:

  • Placez votre log4j.properties fichier quelque part sur le cluster
  • exécuter votre tâche avec un paramètre de configuration, pointant dans le fichier de propriétés.

En supposant que vous exécutez votre travail avec étincelle soumettre, vous pouvez exécuter comme suit:

spark-submit --driver-java-options "-Dlog4j.configuration=file:///absolute/path/to/log4j.properties" job.jar