我正在使用hadoop-2.5.1和hbase-1.0.1当我在工作节点上启动datanode时
hadoop-daemon.sh start datanode
它抛出 SLF4J:class path contains multiple SLF4J bindings 数据节点尚未启动
SLF4J:class path contains multiple SLF4J bindings
ve7v8dk21#
我在安装配置单元时遇到了相同的错误。简单的解决方案是从hive中的文件夹中删除slf4jjar文件,由于这个文件夹出现了多jar错误。现在有多个slf4jjar文件,所以在错误日志中检查哪个slf4jjar导致了错误,很可能是slf4j-log4j12之类的。它实际上取决于您的hive和hadoop版本。发生此错误的原因是hadoop lib文件夹中存在相同的jar,该文件夹包含与hadoop相关的所有jar,并且还包含在hive lib文件夹中。现在,当我们在hadoop之后安装hive时,jar(它是公共的)再次被添加,因为它也存在于hadoop lib文件夹中,因此需要从hive lib文件夹中删除它,因为hive会自动从hadoop lib文件夹中检测到这个jar,因为它依赖于hadoop。因此,从配置单元库文件夹中删除它是安全的。希望这能解决你的疑问
1条答案
按热度按时间ve7v8dk21#
我在安装配置单元时遇到了相同的错误。简单的解决方案是从hive中的文件夹中删除slf4jjar文件,由于这个文件夹出现了多jar错误。
现在有多个slf4jjar文件,所以在错误日志中检查哪个slf4jjar导致了错误,很可能是slf4j-log4j12之类的。它实际上取决于您的hive和hadoop版本。
发生此错误的原因是hadoop lib文件夹中存在相同的jar,该文件夹包含与hadoop相关的所有jar,并且还包含在hive lib文件夹中。现在,当我们在hadoop之后安装hive时,jar(它是公共的)再次被添加,因为它也存在于hadoop lib文件夹中,因此需要从hive lib文件夹中删除它,因为hive会自动从hadoop lib文件夹中检测到这个jar,因为它依赖于hadoop。因此,从配置单元库文件夹中删除它是安全的。
希望这能解决你的疑问