2014-06-13 88 views
0

我嘗試用java轉換器將我的thrift文件轉換爲Parquet文件。SLF4J錯誤=> Windows 7 64位&jre,jdk 7

我有錯誤:

14/06/13 11:51:38 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable 
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. 

我不知道爲什麼,我的Windows 7 64位與的IntelliJ 13.1.2和我使用的JRE & JDK 7和64位。

我的pom.xml中包含:

<dependency> 
    <groupId>org.slf4j</groupId> 
    <artifactId>slf4j-simple</artifactId> 
    <version>1.7.7</version> 
</dependency> 

<dependency> 
    <groupId>org.slf4j</groupId> 
    <artifactId>slf4j-api</artifactId> 
    <version>1.7.7</version> 
</dependency> 

<dependency> 
    <groupId>log4j</groupId> 
    <artifactId>log4j</artifactId> 
    <version>1.2.17</version> 
</dependency> 

謝謝!!

+0

您確定它與Hadoop有關嗎? – fxm

+0

第一個錯誤「無法加載native-hadoop庫」......當然是這樣。 –

+0

這是一個警告,而不是一個錯誤。這可能是由於你正在使用沒有'-Dnative = windows'的編譯jar(這是正常的,因爲它來自maven)。但是,它不會導致第二條消息「無法加載類」org.slf4j.impl.StaticLoggerBinder「。」 – fxm

回答

1

你有兩個不同的警告:

警告:「天然的hadoop庫平臺......」意味着你不必使用Hadoop的優化64位的dll系統路徑上。

警告:「SLF4J:無法加載類」org.slf4j.impl.StaticLoggerBinder「」表示它在類路徑中找不到任何SLF4J實現。這很奇怪,因爲slf4j-simple應該包含那個類。也許嘗試使用slf4j-over-log4j而不是slf4j-simple?

這兩種情況都只是警告。缺少的hadoop dll意味着你不會得到本地優化,但只有純java代碼,可能會慢一點。

缺失的SLF4j實現意味着您不會從hadoop獲得任何日誌記錄,這可能會更不方便。