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里面加上下面的这段代码即可解决

<build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-resources-plugin</artifactId>
                    <version>2.7</version>
                    <configuration>
                        <encoding>UTF-8</encoding>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.2</version>
                    <configuration>
                        <source>1.8</source>
                        <target>1.8</target>
                        <encoding>UTF-8</encoding>
                    </configuration>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>

但是问题并没有随之解决,在我改变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;

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值