繁体   English   中英

蜂巢-为什么SLF4J:当我更改输出路径时,类路径包含多个SLF4J绑定

[英]Hive - Why SLF4J: Class path contains multiple SLF4J bindings appears when I change output path

我需要将查询结果存储在工作流的工作空间中。 为此,我使用了:

INSERT OVERWRITE LOCAL DIRECTORY '/apps/myProject/conf/oozie/workspaces/myWorkflow' 
ROW FORMAT DELIMITED 
FIELDS TERMINATED BY ','  
LINES TERMINATED BY "\n"
SELECT * FROM myTable
LIMIT 10;

但是我得到了错误:

SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/opt/cloudera/parcels/CDH-5.8.5-1.cdh5.8.5.p0.5/jars/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/data/12/yarn/nm/filecache/294953/slf4j-log4j12-1.7.5.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]

我在其他问题link1link2中找到的解决方案是删除库,但是问题是我没有这样做的权限。 还有其他办法吗?

我还要提及的是,如果我设置以下路径,就没有问题

INSERT OVERWRITE LOCAL DIRECTORY 'tmp/user/output' 
ROW FORMAT DELIMITED 
FIELDS TERMINATED BY ','  
LINES TERMINATED BY "\n"
SELECT * FROM myTable
LIMIT 10;

工作流用户(hadoop)在/ apps / myProject / conf / oozie / workspaces / myWorkflow目录中没有写权限。 默认情况下,用户在/ tmp目录中具有写访问权,因此它正在运行。 您能否检查工作流执行用户的访问权限。

SLF4J仅是警告消息,不会停止工作流程的执行。

要确认这一点,请为hadoop用户创建目录并尝试。

希望这可以帮助。

-Ravi

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM