-1

私はcassandraと一緒にKafka Spark Streamingを使用しています。 Eclipseを使用してJavaクラスを実行しているときは正常に動作しますが、mavenを使用してビルドしてSpark Shellで実行すると、前述の例外がスローされます。java.lang.ClassNotFoundException:com.datastax.spark.connector.japi.rdd.CassandraTableScanJavaRDD

java.lang.NoClassDefFoundError: com/datastax/spark/connector/japi/rdd/CassandraTableScanJavaRDD 
    at java.lang.Class.forName0(Native Method) 
    at java.lang.Class.forName(Class.java:348) 
    at org.apache.spark.util.Utils$.classForName(Utils.scala:230) 
    at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:712) 
    at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:180) 
    at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:205) 
    at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:119) 
    at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala) 
Caused by: java.lang.ClassNotFoundException: com.datastax.spark.connector.japi.rdd.CassandraTableScanJavaRDD 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 

maven jarプラグインを使用しようとしましたが、動作しません。 私のpom.xmlの設定では、すべての依存関係を持つ「脂肪ジャー」を構築する必要があり

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.edureka.capstone</groupId> 
    <artifactId>spark-cassandra-demo</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 

    <dependencies> 

     <!-- https://mvnrepository.com/artifact/org.apache.spark/spark-core_2.11 --> 
     <dependency> 
      <groupId>org.apache.spark</groupId> 
      <artifactId>spark-core_2.11</artifactId> 
      <version>2.2.0</version> 
      <scope>provided</scope> 
     </dependency> 

     <!-- https://mvnrepository.com/artifact/org.apache.spark/spark-streaming_2.10 --> 
     <dependency> 
      <groupId>org.apache.spark</groupId> 
      <artifactId>spark-streaming_2.10</artifactId> 
      <version>2.2.0</version> 
      <scope>provided</scope> 
     </dependency> 

     <!-- https://mvnrepository.com/artifact/com.datastax.spark/spark-cassandra-connector_2.11 --> 
     <dependency> 
      <groupId>com.datastax.spark</groupId> 
      <artifactId>spark-cassandra-connector_2.11</artifactId> 
      <version>2.0.5</version> 
     </dependency> 

     <!-- https://mvnrepository.com/artifact/com.datastax.spark/spark-cassandra-connector-java_2.10 --> 
     <dependency> 
      <groupId>com.datastax.spark</groupId> 
      <artifactId>spark-cassandra-connector-java_2.10</artifactId> 
      <version>1.6.0-M1</version> 
     </dependency> 

     <!-- https://mvnrepository.com/artifact/com.datastax.cassandra/cassandra-driver-core --> 
     <dependency> 
      <groupId>com.datastax.cassandra</groupId> 
      <artifactId>cassandra-driver-core</artifactId> 
      <version>3.3.0</version> 
     </dependency> 

     <!-- https://mvnrepository.com/artifact/org.apache.spark/spark-catalyst_2.10 --> 
     <dependency> 
      <groupId>org.apache.spark</groupId> 
      <artifactId>spark-catalyst_2.10</artifactId> 
      <version>2.2.0</version> 
     </dependency> 

     <!-- https://mvnrepository.com/artifact/org.apache.spark/spark-sql_2.10 --> 
     <dependency> 
      <groupId>org.apache.spark</groupId> 
      <artifactId>spark-sql_2.10</artifactId> 
      <version>2.2.0</version> 
     </dependency> 

     <!-- https://mvnrepository.com/artifact/org.apache.spark/spark-streaming-kafka --> 
     <dependency> 
      <groupId>org.apache.spark</groupId> 
      <artifactId>spark-streaming-kafka_2.11</artifactId> 
      <version>1.6.2</version> 
     </dependency> 

     <dependency> 
      <groupId>com.twitter</groupId> 
      <artifactId>bijection-avro_2.10</artifactId> 
      <version>0.9.2</version> 
     </dependency> 

    </dependencies> 

    <build> 
     <resources> 
      <resource> 
       <directory>${basedir}/src/main/resources</directory> 
      </resource> 
     </resources> 
     <pluginManagement> 
      <plugins> 
       <plugin> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-compiler-plugin</artifactId> 
        <version>3.6.2</version> 
        <configuration> 
         <source>1.8</source> 
         <target>1.8</target> 
        </configuration> 
       </plugin> 
      </plugins> 
     </pluginManagement> 
    </build> 
</project> 

答えて

1

は、(例えば、Mavenのアセンブリのプラグインを使用することにより:example 1example 2)が含まれている、またはspark-shellの引数としてすべての追加の依存関係を指定します。

更新:そのコアを追加するのを忘れたSparkの依存関係は、競合を避けるためprovidedとマークする必要があります。