我使用hadoop-2.7.2
,我用IntelliJ做了MapReduceJob。在我的工作中,我使用了apache.commons.cli-1.3.1
,并将该lib放入jar中。Hadoop NoSuchMethodError apache.commons.cli
当我使用MapReduceJob我的Hadoop集群上我有一个NoSuchMethodError
:
Exception in thread "main" java.lang.NoSuchMethodError: org.apache.commons.cli.Option.builder(Ljava/lang/String;)Lorg/apache/commons/cli/Option$Builder;
我不明白,因为该方法在类Option
存在和类Option
从commons-cli.jar
提取到我的应用程序罐。此外,我没有与我的其他图书馆有这个问题。
谢谢你的时间。
我刚刚发现hadoop使用commons-CLi 1.2。我认为这是我的问题的来源,但我不知道如何解决它。 – Antonin
你可以尝试在你的'pom.xml'中从'Hadoop依赖'中排除'commons-cli-1.2',然后Hadoop将使用你的'commons-cli-1.3.1'。如果它导致任何错误,你最好在你的代码中使用'1.2'。 –
我做了这样的事情,但我的老板不想这样,因为它不能解决问题。如果我们稍后与另一个lib有相同的问题,他不想再次解决问题。 但是,谢谢你的建议。 – Antonin