В своем рабочем проекте я использую spark-submit для запуска приложения в кластере пряжи.Я довольно новичок в проектах Maven и использовании pom.xml, но проблема, с которой я, похоже, сталкиваюсь, состоит в том, что hadoop использует более старую версию google protobuf (2.5.0), чем внутренние зависимости, которые я импортирую на работе (2.6.1).
Ошибка здесь:
java.lang.NoSuchMethodError:
com/google/protobuf/LazyStringList.getUnmodifiableView()Lcom/google/protobuf/LazyStringList;
(loaded from file:/usr/hdp/2.6.4.0-91/spark2/jars/protobuf-java-2.5.0.jar
by sun.misc.Launcher$AppClassLoader@8b6f2bf7)
called from class protobuf.com.mycompany.group.otherproject.api.JobProto$Query
Поскольку я не совсем уверен, как подходить к таким проблемам зависимости, и я не могу изменить код внутренней зависимости, который использует 2.6.1, я добавил требуемую версию protobuf в качестве зависимости к моему проекту, а также:
<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java</artifactId>
<version>2.6.1</version>
</dependency>
К сожалению, это не решило проблему.Когда внутренняя зависимость (которая импортирует 2.6.1 сама по себе) пытается использовать свой прото, возникает конфликт.
Любые предложения о том, как я могу заставить использование более новой, правильной версии, будут с благодарностью.