java.lang.NoSuchMethodError: org.spark_project.com.fasterxml.jackson.core.JsonFactory.requiresPropertyOrdering()Z

ererermao 发布于 2017/11/06 09:49
阅读 927
收藏 0

【领华为电脑包】容器化时代到来!跳转机分配问题终于“有救”了!>>>

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. 求解决

 

 

加载中
0
e
ererermao

发现使用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 (包里没有这个方法)

0
e
ererermao

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

返回顶部
顶部