2015-05-12 9 views
5

Sto usando Maven per il mio progetto. Quando eseguo un programma, visualizzo questo errore e, a causa di ciò, non riesco a vedere l'avanzamento dell'esecuzione del programma sebbene il programma stia producendo output previsti.Log4j Impossibile trovare appendici per il logger (org.apache.hadoop.util.shell)

[email protected]:~/CCHD&CCHA/mangoes$ mvn exec:java -q -Dexec.mainClass=bananas.MapReduceColorCount -Dexec.args="hdfs://localhost:9000/users.avrofile hdfs://localhost:9000/pleaseatleastnow6" 
log4j:WARN No appenders could be found for logger (org.apache.hadoop.util.Shell). 
log4j:WARN Please initialize the log4j system properly. 
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info. 
[email protected]:~/CCHD&CCHA/mangoes$ 

Ecco il mio pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>fruits</groupId> 
    <artifactId>mangoes</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <name>Hadoop</name> 
    <description>Hadoop 
Hadoop</description> 
<dependencies> 
<dependency> 
    <groupId>org.apache.avro</groupId> 
    <artifactId>avro</artifactId> 
    <version>1.7.6</version> 
</dependency> 
<dependency> 
    <groupId>org.apache.avro</groupId> 
    <artifactId>avro-mapred</artifactId> 
    <version>1.7.6</version> 
    <classifier>hadoop2</classifier> 
</dependency> 
<dependency> 
    <groupId>org.apache.hadoop</groupId> 
    <artifactId>hadoop-yarn-api</artifactId> 
    <version>2.6.0</version> 
</dependency> 
<dependency> 
    <groupId>org.apache.hadoop</groupId> 
    <artifactId>hadoop-common</artifactId> 
    <version>2.6.0</version> 
</dependency> 
<dependency> 
    <groupId>org.apache.hadoop</groupId> 
    <artifactId>hadoop-hdfs</artifactId> 
    <version>2.6.0</version> 
</dependency> 
<dependency> 
    <groupId>org.apache.hadoop</groupId> 
    <artifactId>hadoop-mapreduce-client-app</artifactId> 
    <version>2.6.0</version> 
</dependency> 
<dependency> 
    <groupId>org.apache.hadoop</groupId> 
    <artifactId>hadoop-mapreduce-client-common</artifactId> 
    <version>2.6.0</version> 
</dependency> 
<dependency> 
    <groupId>org.apache.hadoop</groupId> 
    <artifactId>hadoop-yarn-client</artifactId> 
    <version>2.6.0</version> 
</dependency> 

<dependency> 
    <groupId>org.apache.hadoop</groupId> 
    <artifactId>hadoop-client</artifactId> 
    <version>2.6.0</version> 
</dependency> 
<dependency> 
    <groupId>org.apache.hadoop</groupId> 
    <artifactId>hadoop-mapreduce-client-core</artifactId> 
    <version>2.6.0</version> 
</dependency> 
<dependency> 
    <groupId>org.apache.hadoop</groupId> 
    <artifactId>hadoop-yarn-common</artifactId> 
    <version>2.6.0</version> 
</dependency> 
</dependencies> 

<build> 
<pluginManagement> 
    <plugins> 
     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-compiler-plugin</artifactId> 
     <version>3.3</version> 
     <configuration> 
      <source>1.7</source> 
      <target>1.7</target> 
     </configuration> 
     </plugin> 
     <plugin> 
    <groupId>org.apache.avro</groupId> 
    <artifactId>avro-maven-plugin</artifactId> 
    <version>1.7.6</version> 
    <executions> 
    <execution> 
     <phase>generate-sources</phase> 
     <goals> 
     <goal>schema</goal> 
     </goals> 
     <configuration> 
     <sourceDirectory>${project.basedir}/../</sourceDirectory> 
     <outputDirectory>${project.basedir}/target/generated-sources/</outputDirectory> 
     </configuration> 
    </execution> 
    </executions> 
</plugin> 
    </plugins> 
    </pluginManagement> 
    </build> 

</project> 

mi manca qualsiasi dipendenza? Come/Dove posso configurare log4j correttamente. Grazie in anticipo. Gradirei un aiuto.

+0

Innanzitutto non si tratta di un errore ma solo di un avvertimento; un avvertimento importante comunque. –

+0

Ok. Ma voglio vedere i progressi dell'esecuzione. Come rimuovo questo avviso? –

+0

@SrimanthDuggineni, assicurati di aver inserito il file log4j.properties in classpath. – sureshsiva

risposta

5

Per Maven devi mettere il file log4j.properties o log4j.xml nella cartella principale/risorse. questo è tutto. nient'altro da fare. Crea il tuo file di proprietà. Qualcosa come questo.

log4j.rootLogger=DEBUG, CA 

log4j.appender.CA=org.apache.log4j.ConsoleAppender 

log4j.appender.CA.layout=org.apache.log4j.PatternLayout 
log4j.appender.CA.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n 

È possibile fornire INFO, ERRORE, AVVISO, FATALE e DEBUG alla proprietà log4j.rootlogger. sostituisci il debug con qualsiasi modalità di registrazione adatta alle tue esigenze.

+0

Ho dato DEBUG alla proprietà log4j.rootLogger, ho inserito il file in main/resources e poi ho rispettato il progetto. Ora posso tutti i messaggi DEBUG :) Ha funzionato come un fascino –

1

Seguire l'URL indicato nell'avviso. Fornirà alcune informazioni guida.

http://logging.apache.org/log4j/1.2/faq.html#noconfig 

Dal sito:

Ciò si verifica quando i file di configurazione di default e log4j.properties log4j.xml non possono essere trovati e l'applicazione esegue alcuna configurazione esplicita . log4j utilizza Thread.getContextClassLoader(). getResource() per individuare i file di configurazione predefiniti e non controlla direttamente il file system . Conoscere la posizione appropriata per posizionare log4j.properties o log4j.xml richiede la comprensione della strategia di ricerca del programma di caricamento classi in uso. log4j non fornisce una configurazione di default poiché l'output sulla console o sul file system potrebbe essere proibito in alcuni ambienti.

È necessario uno log4j.properties o log4j.xml. Costruisci quello che meglio si adatta alle tue necessità. Leggi lo Log4J manua Ti fornirò alcune informazioni per aiutare a costruire il file di configurazione