2015-06-02 4 views
2

Я получаю следующее сообщение об ошибке при использовании разъема искровой Кассандры:Ошибки запуск искры и Кассандру с помощью соединителя Java datastax искровой Кассандры

ERROR executor.Executor: Exception in task 0.0 in stage 10.0 (TID 207) 
java.lang.NoSuchMethodError: org.apache.spark.executor.TaskMetrics.inputMetrics_$eq(Lscala/Option;)V 
at com.datastax.spark.connector.metrics.InputMetricsUpdater$.apply(InputMetricsUpdater.scala:61) 
at com.datastax.spark.connector.rdd.CassandraTableScanRDD.compute(CassandraTableScanRDD.scala:196) 
at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:277) 
at org.apache.spark.rdd.RDD.iterator(RDD.scala:244) 
at org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD.scala:35) 
at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:277) 
at org.apache.spark.rdd.RDD.iterator(RDD.scala:244) 
at org.apache.spark.scheduler.ShuffleMapTask.runTask(ShuffleMapTask.scala:68) 
at org.apache.spark.scheduler.ShuffleMapTask.runTask(ShuffleMapTask.scala:41) 
at org.apache.spark.scheduler.Task.run(Task.scala:64) 
at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:203) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
at java.lang.Thread.run(Thread.java:745) 

Моего код:

SparkConf conf = new SparkConf(true).setMaster("local").setAppName("org.sparkexample.SparkCassandra") 
      .set("spark.executor.memory", "1g").set("spark.cassandra.connection.host", "localhost") 
      .set("spark.cassandra.connection.native.port", "9042") 
      .set("spark.cassandra.connection.rpc.port", "9160"); 
    SparkContext ctx = new SparkContext(conf); 
    SparkContextJavaFunctions functions = CassandraJavaUtil.javaFunctions(ctx); 

    JavaRDD<String> cassandraRowsRDD = functions.cassandraTable("sparktest", "SPARK_PERSON").map(
      new Function<CassandraRow, String>() 
      { 
       public String call(CassandraRow cassandraRow) throws Exception 
       { 
        return cassandraRow.toString(); 
       } 
      }); 
    System.out.println("Data as CassandraRows: \n" + StringUtils.join(cassandraRowsRDD.toArray(), "\n")); 

Я попытался Google это и обнаружил, что его можно решить, используя совместимую версию scala. Но я использую java-коннектор.

Как это решить?

Спасибо.

+1

Я думаю, что у вас неправильная версия искры не версия Scala – RussS

+0

Да .. я разрешил ее (временно), разрушив искровую версию .. –

ответ

2

Я нарушил версию искры до 1.2.1 от 1.3.1, чтобы решить эту проблему временно. Я использовал spark-cassandra-connector-java_2.10 версии 1.2.1.