2015-09-08 5 views
0

Когда я бегу блок теста, затем все работает отлично, но когда я запускаю его на кластере, я получаю NoSuchMethodErrorNoSuchMethodError, когда я бегу баночку на кластере

2015-09-07 16:51: 40,143 FATAL [главная] org.apache.hadoop.mapred.YarnChild: ошибка при запуске child: java.lang.NoSuchMethodError: com.google.common.base.Splitter.splitToList (Ljava/lang/CharSequence;) Ljava/util/List;

В pom.xml я включил гуавы: com.google.guava: гуава: 18,0

И когда я установил гуавы версии 14.0, я получаю ту же ошибку. Что мне делать?

+0

Какая версия hadoop? Может быть, он использует более древнюю гуаву (до 15.0)? – ACV

ответ

0

Проверьте свой путь к классу класса Splitter. Возможно, что существуют два класса с одним и тем же именем. Класс Splitter, исходящий из двух разных банок, и один класс перезаписывает другой.

Проверьте в своей рабочей области, в каком состоянии находятся все кусочки класса Splitter, и удалите одну зависимость, которая не нужна. Это должно сработать.

0

Согласно the change log, public List<String> com.google.common.base.Splitter.splitToList(CharSequence) был введен с версии 15.0. Поэтому вам, возможно, придется изменить версию с 14.0 до 15.0 или новее. Я думаю, 18.0 также должен работать ...

+ * @since 15.0 
+ */ 
+ @Beta 
+ public List<String> splitToList(CharSequence sequence) {