0

私はマスターと3人の作業員を持つスパークスタンドアロンクラスターに取り組んでいます。 私のドライバも同じネットワーク上にあるので、基本的にすべてのワーカーとマスターがドライバと通信することができ、その逆もあります。Spark WorkerさんがCassandraPartitionクラスを見つけられませんでした

私はsparksession(Javaプログラム)を取得してドライバからジョブを実行しようとしています。プログラムに追加されたMavenの依存関係は、spark-core_2.11(v2.2)、spark-sql_2.11(v2.2)、spark-streaming_2.11(v2.2)、spark-mllib_2.11(v2.2) 、spark-cassandra-connector_2.11(v2.0.5)、spark-cassandra-connector-java_2.11(v1.6.0-M1)。

スレーブで次のエラーが発生します。

java.lang.ClassNotFoundException: com.datastax.spark.connector.rdd.partitioner.CassandraPartition 
    java.net.URLClassLoader.findClass(URLClassLoader.java:381) 
    java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
    java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
    java.lang.Class.forName0(Native Method) 
    java.lang.Class.forName(Class.java:348) 
    org.apache.spark.serializer.JavaDeserializationStream$$anon$1.resolveClass(JavaSerializer.scala:67) 
    java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1826) 
    java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1713) 
    java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2000) 
    java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1535) 
    java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2245) 
    java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2169) 
    java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2027) 
    java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1535) 
    java.io.ObjectInputStream.readObject(ObjectInputStream.java:422) 
    org.apache.spark.serializer.JavaDeserializationStream.readObject(JavaSerializer.scala:75) 
    org.apache.spark.serializer.JavaSerializerInstance.deserialize(JavaSerializer.scala:114) 
    org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:309) 
    java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 
    java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) 
    java.lang.Thread.run(Thread.java:748) 

誰かがこの問題を考え出すに私を助けてもらえ...

また、スレーブでの起動コマンドは以下のようになります。

17/11/15 03:21:07 INFO ExecutorRunner: Launch command: "/docker-java-home/jre/bin/java" 
    "-cp" "//conf/:/jars/*" "-Xmx1024M" 
    "-Dspark.cassandra.connection.port=9042" 
    "-Dspark.driver.port=7078" 
    "org.apache.spark.executor.CoarseGrainedExecutorBackend" 
    "--driver-url" 
    "spark://[email protected]:xx:xx:xx:7078" 
    "--executor-id" "10" "--hostname" 
    "slave01" "--cores" "4" 
    "--app-id" "app-1-0019" "--worker-url" "spark://[email protected]:12125" 

感謝!!

答えて

0

spast workerのランタイムクラスパスにdatastax spark cassandraコネクタ依存性ジャーを追加することでこの問題を解決しました。

関連する問題