java - Log4j 找不到记录器的附加程序 (org.apache.hadoop.util.shell)

标签 java maven hadoop logging log4j

我正在为我的项目使用 maven。当我运行程序时出现此错误,因此我无法看到我的程序执行进度,尽管该程序正在生成预期的输出。

srimanth@srimanth-Inspiron-N5110:~/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.
srimanth@srimanth-Inspiron-N5110:~/CCHD&CCHA/mangoes$ 

这是我的 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>

我是否缺少任何依赖项?如何/在哪里正确配置 log4j。提前致谢。我将不胜感激。

最佳答案

对于 Maven,您必须将 log4j.properties 或 log4j.xml 文件放在 main/resources 文件夹中。而已。没有别的事可做。创建您自己的属性文件。像这样。

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

您可以为 log4j.rootlogger 属性提供 INFO、ERROR、WARNING、FATAL 和 DEBUG。用最适合您需要的日志模式替换调试。

关于java - Log4j 找不到记录器的附加程序 (org.apache.hadoop.util.shell),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30192481/

相关文章:

java - Hadoop MapReduce : using MapWritable as a key

java - 单击android中操作栏中的下拉导航时如何调用新 Activity

java - 如何在表格布局中更改/调整 EditText 的大小?

java - Vaadin:将私有(private) java.util.Calendar 项目绑定(bind)到 PopupDateField

java - 如何在JSP中创建全局 session ?

java - 如何插入作为 XML 节点的 Maven 属性?

java - Spring 5.1 + Tomcat 9 + Java 10 + 模块化项目 = java.lang.NoClassDefFoundError : org/springframework/core/io/Resource

java - Maven 自定义目录结构 - 尽管指定了 sourceDirectory,但没有要编译的源

hadoop - Hadoop MapReduce中Mapper/Reducer的设置和清理方法

hadoop - Airflow 失败 : ParseException line 2:0 cannot recognize input near