解决Hive初始化报错:F4J: Found binding in [jar:file:/export/server/hadoop/share/hadoop/common/lib

原因是 guava-19.0.jar 这个包没删除导致hive不确定使用哪个包

解决方式 删除即可

cd /export/server/apache-hive-3.1.2-bin/

 rm -rf lib/guava-19.0.jar

  • 14
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 这是一个警告信息,表示在路径中包含了多个不同的Slf4j(简单日志门面)绑定。在这个例子中,一个Slf4j绑定在/usr/local/hive/lib/目录下的log4j-slf4j-impl-2.10.0.jar文件中,另一个绑定在/usr/local/hadoop/share/hadoop/common/lib/目录下的slf文件中。可能需要检查系统配置,以消除这种绑定重复的情况。 ### 回答2: 4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class]。 这个错误信息是因为在程序运行时,发现有多个SLF4J日志绑定在类路径中。SLF4J是一个简化日志系统的接口,它的目的是让应用程序能够方便地切换不同的日志实现。由于SLF4J是一个接口,而实现SLF4J的日志库有很多,例如Log4j、Logback、Java Util Logging、Commons Logging等等,这些库都可以实现SLF4J所定义的接口,因此在使用SLF4J时,需要一个SLF4J实现和一个日志库实现。 在这个错误信息中,我们可以看到有两个不同的SLF4J绑定,一个在hadooplib目录下的slf4j-log4j12-1.7.25.jar中,另一个则在hivelib目录下的log4j-slf4j-impl-2.10.0.jar中。这两个绑定都包含了同样的类,因此会产生冲突。 在解决这个错误之前,需要了解应用程序使用的日志库和SLF4J实现。如果使用的是Log4j,那么可以删除hive中的log4j-slf4j-impl-2.10.0.jar,因为Log4j本身已经包含了SLF4J。如果使用的是其他日志库,可以将hadoop中的slf4j-log4j12-1.7.25.jar删除,因为其他日志库中也都包含了SLF4J。 如果应用程序必须使用两个不同的日志库,可以使用exclude命令排除不需要的库,例如在pom.xml文件中排除hadoop的slf4j-log4j12-1.7.25.jar。这样就可以避免SLF4J的多重绑定问题。 总之,在遇到SLF4J多重绑定错误时,需要了解应用程序使用的日志库和SLF4J实现,并使用适当的方法解决冲突。 ### 回答3: 这个错误信息意味着项目中同时存在多个slf4j的绑定器。在这种情况下,slf4j会自动选择其中之一,但是选择哪一个并不明确。由于绑定器的实现方式可能不同,这可能会导致日志输出上的问题。因此,最好只保留一种绑定器。 在这个具体例子中,错误信息显示了两个slf4j绑定器的位置。第一个是在 "/usr/local/hive/lib/log4j-slf4j-impl-2.10.0.jar" 中,而第二个在 "/usr/local/hadoop/share/hadoop/common/lib/slf4j-log4j12-1.7.25.jar" 中。两个绑定器都与log4j有关,这意味着项目中同时使用了log4j和slf4j。 为了解决这个问题,应该确保只使用一种绑定器。在这个案例中,由于log4j-slf4j-impl-2.10.0.jar已经包含了两者的功能,因此建议删除 "/usr/local/hadoop/share/hadoop/common/lib/slf4j-log4j12-1.7.25.jar",并重新启动应用程序。 如果你在项目中使用了其他日志库,并且出现了类似的错误信息,解决方案也类似。首先,确定所有库的日志绑定器,然后选择一个主要的绑定器,删除其他绑定器,并重新启动应用程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值