栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

spark任务执行异常-java.lang.NoSuchMethodError: org.apache.hadoop.fs.PartialListing

spark任务执行异常-java.lang.NoSuchMethodError: org.apache.hadoop.fs.PartialListing

问题描述:提交到yarn集群后任务报错,报错信息如下

java.lang.NoSuchMethodError: org.apache.hadoop.fs.PartialListing

根据报错信息,初步估计是jar包冲突或者不同jar包有同名类。

排查过程:

使用如下命令查看同名类出现的jar包是哪些:

find /usr/local/service/spark -name “*.jar” -exec grep -Hls “org/apache/hadoop/fs/PartialListing” {} ;

结果如下,有两个jar包有相同类:

进一步发现hadoop-common-3.2.0.jar中没有PartialListing,且使用这个版本时不会报错,于是可以确定是这个类导致的冲突,jvm规范规定相同加载器不会把同一个类加载两次,虽然在不同包中,但类签名完全相同,虚拟机认为这是同一个类,只会加载其中一个,而加载的这个并非是我们要使用的那个。

解决方案:

这两个包都不可或缺,且hadoop-common包的版本不能回滚到3.2.0,最后尝试将hadoop-common包中的PartialListing的class文件移除,移除之后,应用正常执行。所幸暂未用到这个类,但此处是个隐患。

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

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

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