完整错误信息如下:
20/05/11 21:07:50 ERROR [Driver] ApplicationMaster: User class threw exception: java.lang.NoSuchMethodError: org.json4s.jackson.JsonMethods$.parse(Lorg/json4s/JsonInput;Z)Lorg/json4s/JsonAST$JValue;
java.lang.NoSuchMethodError: org.json4s.jackson.JsonMethods$.parse(Lorg/json4s/JsonInput;Z)Lorg/json4s/JsonAST$JValue;
at com.xxx.recommend.specialtopic.SpecialTopicPageTask$.main(SpecialTopicPageTask.scala:57)
at com.xxx.recommend.specialtopic.SpecialTopicPageTask.main(SpecialTopicPageTask.scala)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.spark.deploy.yarn.ApplicationMaster$$anon$2.run(ApplicationMaster.scala:684)
java.lang.NoSuchMethodError 此类错误一般都是jar版本不一致导致的,解决此类问题只需要保持依赖jar版本统一即可
第一种解决方案:让pom.xml的dependency 版本和spark 集群中版本保持一致
第二种解决方案:直接使用spark自带的json4s jar包
下图列出了spark 集群中和项目pom.xml 的json4s 版本