运行Hadoop命令时在杰克逊中获取java.lang.NoSuchMethodError:

问题描述

工件cm-jobs依赖工件kloudkloud依赖工件jackson-databind

maven-shaded-plugin用于打包cm-jobs。 在hadoop jar上执行cm-jobs时,我们看到以下错误

Exception in thread "main" java.lang.NoSuchMethodError: com.fasterxml.jackson.databind.JsonNode.asText(Ljava/lang/String;)Ljava/lang/String;
    at com.flipkart.kloud.config.InstanceMetaData.getNode(InstanceMetaData.java:81)
    at com.flipkart.kloud.config.InstanceMetaData.<init>(InstanceMetaData.java:46)
    at com.flipkart.kloud.config.InstanceMetaData.<clinit>(InstanceMetaData.java:36)
    at com.flipkart.kloud.config.EndpointProvider.<init>(EndpointProvider.java:44)
    at com.flipkart.kloud.config.EndpointProvider.<clinit>(EndpointProvider.java:35)
    at com.flipkart.kloud.config.ConfigClient.getEndpoint(ConfigClient.java:170)
    at com.flipkart.kloud.config.ConfigClient.<init>(ConfigClient.java:102)
    at com.flipkart.kloud.config.ConfigClient.<init>(ConfigClient.java:91)
    at com.flipkart.ads.common.configuration.ConfigServiceClient.getAppDynamicBucketFromEnvSettings(ConfigServiceClient.java:246)
    at com.flipkart.ads.common.configuration.ConfigServiceClient.getAppDynamicBucketFromEnvSettings(ConfigServiceClient.java:237)
    at com.flipkart.ads.jobs.BaseTrigger.init(BaseTrigger.java:20)
    at com.flipkart.ads.jobs.BaseTrigger.markJobStatus(BaseTrigger.java:32)
    at com.flipkart.ads.jobs.reco.PLARecoRelevanceGenerator.run(PLARecoRelevanceGenerator.java:102)
    at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:76)
    at com.flipkart.ads.jobs.reco.PLARecoRelevanceGenerator.main(PLARecoRelevanceGenerator.java:54)
    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:497)
    at org.apache.hadoop.util.RunJar.run(RunJar.java:221)
    at org.apache.hadoop.util.RunJar.main(RunJar.java:136)

根据依赖性树here,仅使用了一个版本的Jackson-bind。那么,冲突类com.fasterxml.jackson.databind.JsonNode是从哪儿捡来的?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)