开发者社区> 问答> 正文

java.lang.NoSuchMethodError: org.spark_p?400报错

1. 背景:

  1.  cdh5.11.2 版本的hadoop yarn hbase
  2. spark 版本为apache 2.0.2 
  3. 自己编译spark on cdh 
  4. com.fasterxml.jackson.core 版本为:2.6.5

2. 操作:

  1. 按照 http://blog.csdn.net/windyqcf/article/details/70140404 这个教程,使用yarn动态资源分配
  2. 其中使用到的这个 org.apache.spark.network.yarn.YarnShuffleService  来源 spark-2.0.2-yarn-shuffle.jar

3. 问题: 在重启yarn的时候报错:java.lang.NoSuchMethodError: org.spark_project.com.fasterxml.jackson.core.JsonFactory.requiresPropertyOrdering()Z

4. 自我分析: NoSuchMethodError 一般就2种情况:1. 没有这个类这个方法    2. 有多个类名冲突

  1. jar -tvf spark-2.0.2-yarn-shuffle.jar | grep "org.spark_project.com.fasterxml.jackson.core.JsonFactory" : 是有这方法的
  2. 查看编译的pom.xml 发现用的 jackson.core2.6.5 ,通过源码 发现有这个类:https://github.com/FasterXML/jackson-core/blob/2.6/src/main/java/com/fasterxml/jackson/core/JsonFactory.java
  3. grep -rni "org.spark_project.com.fasterxml.jackson.core.JsonFactory.requiresPropertyOrdering()Z" /usr/lib/  (hadoop 所有相关lib全在这个目录下) : 没有类名冲突

5. 尝试解决

  1. 网上发现有可能是 jackson 版本问题,修改为2.8.5 , 还是这个错

6. 求解决

 

 

展开
收起
爱吃鱼的程序员 2020-06-07 22:48:51 1025 0
2 条回答
写回答
取消 提交回答
  • 检查是否有包冲突

    2020-06-23 17:38:22
    赞同 展开评论 打赏
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    发现使用spark-1.6.0-cdh5.11.2-yarn-shuffle.jar这个包,没有问题.然而这个包里面同样有 org.apache.spark.network.yarn.YarnShuffleService 而且不依赖 org.spark_project.com.fasterxml.jackson.core.JsonFactory.requiresPropertyOrdering()Z(包里没有这个方法)

    在解决过程中看到对于NoSuchMethodError的另外一种解释:http://timen-zbt.iteye.com/blog/1871152

    2020-06-07 22:49:08
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载