栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

add jar 后 this version of the Java Runtime only recognizes class file versions up to 52.0 问题解决

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

add jar 后 this version of the Java Runtime only recognizes class file versions up to 52.0 问题解决

0 问题描述

在我在hive命令行中执行
add jar /opt/module/hive/data/myudf.jar;
create temporary function my_len as "MyStringLength";
这两条语句后,报了下面的错误

FAILED: Execution Error, return code -101 from org.apache.hadoop.hive.ql.exec.FunctionTask. 
MyStringLength has been compiled by a more recent version of the Java Runtime (class file version 
55.0), this version of the Java Runtime only recognizes class file versions up to 52.0

阅读报错信息可知重点在this version of the Java Runtime only recognizes class file versions up to 52.0。顾名思义的解决方法是将jar包里面的jdk版本降为8,否则不能在虚拟机配置的java环境中运行。

1 问题深入

jdk版本降为8的问题,只需在pom.xml里面加上下面的这段代码即可解决


        
            
                
                    org.apache.maven.plugins
                    maven-resources-plugin
                    2.7
                    
                        UTF-8
                    
                
                
                    org.apache.maven.plugins
                    maven-compiler-plugin
                    3.2
                    
                        1.8
                        1.8
                        UTF-8
                    
                
            
        
    

但是问题并没有随之解决,在我改变jdk为8,并重新打包上传,执行下面两条语句后
add jar /opt/module/hive/data/myudf.jar;
create temporary function my_len as "MyStringLength";
却仍然报了同样的错误。

2 问题解决

所以想到了也许我们不仅应该将 jar 包添加到 hive 的classpath,还应该把过去添加的错误jar包给删去。幸运的是,当思考方向正确的时候,解决问题也变得易如反掌。
仅需如下一句,先删后加,OK的大门就向我们打开。

delete jar /opt/module/data/myudf.jar;

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1029069.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号