使用UDF的Hive查询输出最后包含这两个警告。如何抑制这2个警告。请注意,输出后的2个警告就是输出的一部分。
WARN: The method class org.apache.commons.logging.impl.SLF4JLogFactory#release() was invoked.
WARN: Please see http://www.slf4j.org/codes.html#release for an explanation.
hadoop版
Hadoop 2.6.0-cdh5.4.0
hive --version
Hive 1.1.0-cdh5.4.0
答案 0 :(得分:1)
如果您使用beeline而不是Hive,则错误消失。不是最好的解决方案,但我打算发帖给CDH用户组,询问是否存在可以修复的错误。
答案 1 :(得分:0)
由于添加了包含来自icl-over-slf4j.jar(导致stdout消息)和slf4j-log4j12.jar的类的程序集jar而发生此错误。
你可以尝试一些事情开始:
尝试移除装配罐,以防使用。
请看以下链接:https://issues.apache.org/jira/browse/HIVE-12179 这表明我们可以在Hive中触发一个标志,只有当HIVE_ADD_SPARK_ASSEMBLY =" true"
https://community.hortonworks.com/questions/34311/warning-message-in-hive-output-after-upgrading-to.html: 虽然有一种解决方法,如果要避免任何结束时间更改,那就是使用shell脚本从文件末尾手动删除2行。
答案 2 :(得分:0)
尝试设置HIVE_ADD_SPARK_ASSEMBLY = false,但是没有用。
最后,我在Cloudera社区找到了一个发帖问题。参见:https://community.cloudera.com/t5/Support-Questions/Warning-message-in-Hive-output-after-upgrading-to-hive/td-p/157141
您可以尝试以下命令,它对我有用!
hive -S -d ns=$hiveDB -d tab=$t -d dunsCol=$c1 -d phase="$ph1" -d error=$c2 -d ts=$eColumnArray -d reporting_window=$rDate -f $dir'select_count.hsql' | grep -v "^WARN" > $gOutPut 2> /dev/null