web-dev-qa-db-fra.com

classe locale incompatible Exception: lors de l'exécution de spark standalone à partir de IDE

Je commence à tester spark . J'ai installé spark sur ma machine locale et exécute un cluster local avec un seul opérateur. lorsque j’ai essayé d’exécuter mon travail à partir de mon IDE en définissant le sparconf comme suit: 

final SparkConf conf = new SparkConf().setAppName("testSparkfromJava").setMaster("spark://XXXXXXXXXX:7077");
final JavaSparkContext sc = new JavaSparkContext(conf);
final JavaRDD<String> distFile = sc.textFile(Paths.get("").toAbsolutePath().toString() + "dataSpark/datastores.json");*

J'ai cette exception:

Java.lang.RuntimeException: Java.io.InvalidClassException: org.Apache.spark.rpc.netty.RequestMessage; local class incompatible: stream classdesc serialVersionUID = -5447855329526097695, local class serialVersionUID = -2221986757032131007
12
Nesrine Ben mustapha

Vous avez tout cela avec la combinaison de versions ci-dessous

Étincelle installée 1.6.2

vérifier avec bin/spark-submit --version

<dependency>
            <groupId>org.Apache.spark</groupId>
            <artifactId>spark-core_2.10</artifactId>
            <version>1.6.2</version>
</dependency>

et 

Scala 2.10.6 et Java 8.

Notez que cela n’a pas fonctionnéPASet que les versions ci-dessous ne sont pas compatibles 

Scala 2.11.8 et Java 8

<dependency>
            <groupId>org.Apache.spark</groupId>
            <artifactId>spark-core_2.11</artifactId>
            <version>1.6.2</version>
</dependency>
5
user1733158

Il peut y avoir plusieurs raisons incompatibles ci-dessous:

  • Version Hadoop;
  • Version Spark;
  • Version Scala;
  • ...

Pour moi, sa version Scala, j’utilise 2.11.X dans mon IDE mais le doc officiel dit:

Spark runs on Java 7+, Python 2.6+ and R 3.1+. For the Scala API, Spark 1.6.1 uses Scala 2.10. You will need to use a compatible Scala version (2.10.x).

et le x dans le doc dit ne peut pas être inférieur à 3 si vous utilisez la dernière version de Java (1.8), car this . J'espère que cela vous aidera!

4
Lucas

Il semblerait que votre version de Spark installée n’est pas identique à la version de Spark utilisée dans votre IDE.

Si vous utilisez maven, comparez simplement la version de la dépendance déclarée dans pom.xml et la sortie de bin/spark-submit --version et assurez-vous qu'elles sont identiques. 

3
zsxwing

J'ai rencontré ce problème parce que la dépendance de Spark JAR était 2.1.0 mais que la version de Spark Engine installée est 2.0.0. Par conséquent, la version ne correspond pas, elle lève donc cette exception. 

La cause première de ce problème est une incompatibilité de version de la dépendance du fichier Spark dans le projet et du moteur Spark installé dans lequel le travail d'exécution d'étincelle est en cours d'exécution.

Par conséquent, vérifiez les deux versions et rendez-les identiques. 

La version 2.1.0 et la version de Spark Computation Engine de Spark-core Jar doivent être: 2.1.0

La version 2.0.0 du récipient Spark-core et la version du moteur de calcul Spark doivent être: 2.0.0

Cela fonctionne parfaitement pour moi.

0
Rajeev Rathor