2014-11-20 64 views
1

记录的误差初始化成使用配置的jar:文件:/usr/local/hive/lib/hive-common-0.12.0.jar /hive-log4j.properties运行蜂巢0.12 SLF4J

SLF4J: Class path contains multiple SLF4J bindings. 
SLF4J: Found binding in [jar:file:/usr/local/hadoop/share/hadoop/common/lib/slf4j-log4j12- 1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class] 
SLF4J: Found binding in [jar:file:/usr/local/hive/lib/slf4j-log4j12-1.6.1.jar!/org/slf4j/impl/StaticLoggerBinder.class] 
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation. 
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory] 

配置单元>

+0

虽然这里有什么问题吗? – 2014-11-20 22:37:19

+0

我可以运行配置单元,但我想摆脱slf4j警告或错误 – 2014-11-20 22:45:32

回答

3

您需要删除这些jar文件Hadoop和蜂巢

  • RM的lib /蜂巢-JDBC-2.0.0-standalone.jar
  • 之间的结合
  • RM LIB/log4j的-SLF4J-IMPL-2.4.1.jar
1

在警告中列出的2个SLF4J绑定中,您需要从类路径中排除其中的一个。

即使这是一个警告,SLF4J会选择一个日志框架/实现并绑定它 - 绑定由JVM决定,并且通常被认为是随机函数。

+0

非常感谢Mr.kishore,我删除了我的目录/ usr/local/hive/lib中的旧版本,并留下了位于hadoop目录和它的工作完美,但有另一个slf4j文件称为slf4j-api-1.6.1.jar和在hadoop目录它的slf4j-api-1.7.5.jar应删除旧版本,而没有警告或错误信息? – 2014-11-21 08:45:38

0

由于正在使用HIVE和HADOOP路径中的sl4j.jar,因此您会收到此类警告消息。 为了摆脱这种情况,只需从/ usr/local/hive/lib中删除hive-jdbc-1.1.0-standalone.jar。 那么你应该去好... :)

0

要解决此添加脚本的以下行/usr/iop/4.1.0.0/hive/bin/hive.distro蜂巢的所有节点上的文件,

CLASSPATH=`echo $CLASSPATH| sed 's/\/usr\/local\/hadoop\/lib\/slf4j\-log4j12\-1\.7\.10\.jar//g'` 

脚本应该行

if $cygwin; then 
CLASSPATH=`cygpath -p -w "$CLASSPATH"` 
CLASSPATH=${CLASSPATH};${AUX_CLASSPATH} 
else 
CLASSPATH=${CLASSPATH}:${AUX_CLASSPATH} 
fi 

的警告将不再出现后插入。

http://www-01.ibm.com/support/docview.wss?uid=swg21971864