我使用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