При запуске простой искровой работы из (весеннего) веб-приложения я получаю IncompatibleClassChangeError
. Вероятно, это связано с некоторыми несовместимыми зависимостями, но я не могу найти, что.IncompatibleClassChangeError при запуске искры из (пружинного) сервлета
Проще говоря, this is the issue с стеком исключений.
Вот the failing code:
// file conversion with spark
// --------------------------
JavaRDD<String> inputRdd = sparkContext.textFile(inputFile).cache();
Function fct = new Function<String,String>() {
@Override
public String call(String line) throws Exception {
return line.toUpperCase();
}
};
JavaRDD<Strineg> outputRdd = inputRdd.map(fct); // *** fail ***
outputRdd.saveAsTextFile(outputDir);
И это называется из a simple spring servlet:
@RequestMapping(method = RequestMethod.GET, value="/upper")
public @ResponseBody boolean upper(@RequestParam(required = true) String inputFile,
@RequestParam(required = true) String outputDir,
@RequestParam(required = false) String master,
@RequestParam(required = false) String namenode) {
if(master==null) master = "local";
SparkUpper.upper(inputFile, outputDir, master, namenode);
return true;
}
А вот the (maven) dependencies:
<dependencies>
<!-- spring -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- spark & hadoop -->
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.10</artifactId>
<version>1.2.1</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-core</artifactId>
<version>1.2.1</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client</artifactId>
<version>2.5.2</version>
</dependency>
</dependencies>
Самое странное в том, что в основном делать то же самое, с одинаковыми искровыми зависимостями, но называемое fr om сервлет, как в this project, который отлично работает.
Любая идея была бы принята с благодарностью.
Что для меня значит, что у вас есть 'hadoop-core: 1.2.1' с' hadoop-client: 2.5.2'. Это противоречивые версии. Кроме того, в вашем другом проекте вы используете искру 1.1.0 против 1.2.1. – climbage
Я пробовал с искрой 1.2.1 в моем другом проекте без проблем. Затем я в основном взял последний клиент из базы данных и ядро той же версии hadoop, которую я использую.Еще раз он работает без весны ... –
Зависит ли конфликт 'mvn: tree' show? И как они разрешили мой Maven? –