2017-05-11 2 views
0

Ich habe Spark 1.6 und Cassandra connector 1.4.3 wurde unter Verwendung von Daten zu cassandra von Funken zu schreiben.java.lang.NoSuchMethodError: scala.reflect.api.JavaUniverse.runtimeMirror (Ljava/lang/Classloader;): Sparkcassandra Anschluss

Nun wir Spark 2.1.0 aufgerüstet und ich versuchte, die cassandra connector to 2.0.0-M3 zu aktualisieren, aber es ist der Fehler zurückgegeben wird, wie unten: -

java.lang.NoSuchMethodError: scala.reflect.api.JavaUniverse.runtimeMirror(Ljava/lang/ClassLoader;)Lscala/reflect/api/JavaMirrors$JavaMirror; at com.datastax.spark.connector.util.JavaApiHelper$.mirror(JavaApiHelper.scala:25) at com.datastax.spark.connector.util.JavaApiHelper$.getTypeTag(JavaApiHelper.scala:29) at com.datastax.spark.connector.util.JavaApiHelper.getTypeTag(JavaApiHelper.scala) at com.datastax.spark.connector.japi.CassandraJavaUtil.typeTag(CassandraJavaUtil.java:159) at com.datastax.spark.connector.japi.CassandraJavaUtil.mapToRow(CassandraJavaUtil.java:1172) at com.datastax.spark.connector.japi.CassandraJavaUtil.mapToRow(CassandraJavaUtil.java:1205) at com.datastax.spark.connector.japi.CassandraJavaUtil.mapToRow(CassandraJavaUtil.java:1222) at com.cisco.cmcdp.EBdoUtils.upsertToJobAuditTable(EBdoUtils.java:370) at com.cisco.cmcdp.EBdoContactPublisher.main(EBdoContactPublisher.java:245) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.apache.spark.deploy.yarn.ApplicationMaster$$anon$2.run(ApplicationMaster.scala:637)

pom.xml:

<!-- Spark and Spark SQL, Hive Dependencies --> 
    <dependency> 
     <groupId>org.apache.spark</groupId> 
     <artifactId>spark-core_2.11</artifactId> 
     <version>2.1.0-mapr-1703</version> 
        <exclusions> 
      <exclusion> 
       <groupId>com.google.guava</groupId> 
       <artifactId>guava</artifactId> 
      </exclusion> 
     </exclusions> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.spark</groupId> 
     <artifactId>spark-sql_2.11</artifactId> 
     <version>2.1.0-mapr-1703</version> 
        <exclusions> 
      <exclusion> 
       <groupId>com.google.guava</groupId> 
       <artifactId>guava</artifactId> 
      </exclusion> 
     </exclusions> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.spark</groupId> 
     <artifactId>spark-hive_2.11</artifactId> 
     <version>2.1.0-mapr-1703</version> 
        <exclusions> 
      <exclusion> 
       <groupId>com.google.guava</groupId> 
       <artifactId>guava</artifactId> 
      </exclusion> 
     </exclusions> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.spark</groupId> 
     <artifactId>spark-streaming_2.11</artifactId> 
     <version>2.1.0-mapr-1703</version> 
        <exclusions> 
      <exclusion> 
       <groupId>com.google.guava</groupId> 
       <artifactId>guava</artifactId> 
      </exclusion> 
     </exclusions> 
    </dependency> 


    <!--Spark Cassandra Connector --> 
    <dependency> 
     <groupId>com.datastax.cassandra</groupId> 
     <artifactId>cassandra-driver-core</artifactId> 
     <version>3.0.0</version> 
     <exclusions> 
      <exclusion> 
       <groupId>org.xerial.snappy</groupId> 
       <artifactId>snappy-java</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>com.google.guava</groupId> 
       <artifactId>guava</artifactId> 
      </exclusion> 
     </exclusions> 
    </dependency> 

    <dependency> 
     <groupId>com.datastax.cassandra</groupId> 
     <artifactId>cassandra-driver-mapping</artifactId> 
     <version>3.0.0</version> 
     <exclusions> 
      <exclusion> 
       <groupId>com.google.guava</groupId> 
       <artifactId>guava</artifactId> 
      </exclusion> 
     </exclusions> 
    </dependency> 

    <dependency> 
     <groupId>org.apache.cassandra</groupId> 
     <artifactId>cassandra-clientutil</artifactId> 
     <version>2.0.0</version> 

     <exclusions> 
      <exclusion> 
       <groupId>org.xerial.snappy</groupId> 
       <artifactId>snappy-java</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>com.google.guava</groupId> 
       <artifactId>guava</artifactId> 
      </exclusion> 
     </exclusions> 
    </dependency> 

    <dependency> 
     <groupId>com.datastax.spark</groupId> 
     <artifactId>spark-cassandra-connector_2.10</artifactId> 
     <version>2.0.0-M3</version> 
      <exclusions> 
      <exclusion> 
       <groupId>com.google.guava</groupId> 
       <artifactId>guava</artifactId> 
      </exclusion> 
     </exclusions> 
    </dependency> 

    <dependency> 
     <groupId>com.datastax.spark</groupId> 
     <artifactId>spark-cassandra-connector_2.10</artifactId> 
     <version>2.0.0-M3</version> 
     <exclusions> 
      <exclusion> 
       <groupId>com.google.guava</groupId> 
       <artifactId>guava</artifactId> 
      </exclusion> 
     </exclusions> 
    </dependency> 

vorschlagen Bitte geben Sie die entsprechende Weg und Version des Cassandra-Connectors.

Grüße, Rishabh

Antwort

0

Dieses Problem ist vor allem durch die Nutzung von ungeeigneten Scala Version, können Sie Mix aus Scala 2.10 und Scala 2.11 Bibliotheken in Ihrem Classpath haben. Stellen Sie sicher, dass Sie Spark 2.x, Spark Cassandra Connector 2.x und Scala 2.11 verwenden (Scala 2.10 wird zwar unterstützt, aber es ist besser, Scala 2.11 zu verwenden). Werfen Sie einen Blick auf folgende Arbeit Maven-Konfiguration -

<dependency> 
     <groupId>org.apache.spark</groupId> 
     <artifactId>spark-core_2.11</artifactId> 
     <version>2.1.0</version> 
     <exclusions> 
      <exclusion> 
       <groupId>commons-codec</groupId> 
       <artifactId>commons-codec</artifactId> 
      </exclusion> 
     </exclusions> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.spark</groupId> 
     <artifactId>spark-sql_2.11</artifactId> 
     <version>2.1.1</version> 
     <exclusions> 
      <exclusion> 
       <groupId>commons-codec</groupId> 
       <artifactId>commons-codec</artifactId> 
      </exclusion> 
     </exclusions> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.spark</groupId> 
     <artifactId>spark-streaming_2.11</artifactId> 
     <version>2.1.1</version> 
    </dependency> 
    <dependency> 
     <groupId>com.datastax.spark</groupId> 
     <artifactId>spark-cassandra-connector_2.11</artifactId> 
     <version>2.0.1</version> 
    </dependency> 
    <dependency> 
     <groupId>commons-codec</groupId> 
     <artifactId>commons-codec</artifactId> 
     <version>1.10</version> 
    </dependency> 

Ich hoffe, es hilft.

+0

Danke, dass es hilfreich war, jedoch konnte ich das Problem beheben, indem ich 2.11-Version von Cassandra-Connector verwendete, ich 2.10 früher verwendete. unten funktioniert lib für mich: spark-cassandra-connector_2.11-2.0.1.jar und spark-cassandra-connector-java_2.11-1.6.0-M1.jar – Rishabh

Verwandte Themen