无法加载类org.slf4j.impl.StaticLoggerBinder并且无法加载native-hadoop库

时间:2015-09-18 15:00:28

标签: java hadoop

我是Hadoop的新手,在一次MapReduce任务中,我收到了以下错误:

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation 
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
15/09/18 07:31:10 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

我该如何解决这个问题?

谢谢!

1 个答案:

答案 0 :(得分:7)

以下是您的错误的含义:

SLF4J

SLF4J: **Failed to load class** "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation 
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.

正如您所知,您没有适当的类(* 无法加载类 *)以使SLF4J正常工作,因此默认为无记录((NOP)记录器实现)。按照建议的link,您可以看到解决方法是:

  

在课堂上放置一个(且只有一个) slf4j-nop.jarslf4j-simple.jarslf4j-log4j12.jarslf4j-jdk14.jarlogback-classic.jar路径应该解决问题

对于Hadoop:

15/09/18 07:31:10 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

这只是意味着无法找到本机库,它通常不会影响Hadoop的运行方式。至于本地图书馆:

  

由于性能原因和Java实现的不可用性,本机库只包含某些组件的实现。这些组件在单个动态链接的本机库中可用,称为本机hadoop库。在* nix平台上,该库名为libhadoop.so。

无论如何,如果确实希望摆脱警告,您可以按照提供的众多解决方案之一here