0

目標は、Spark JobServer のローカル インスタンスで以下を作成することです。

object foo extends SparkJob with NamedRddSupport

質問: すべてのジョブで発生する次のエラーを修正するにはどうすればよいですか:

{
  "status": "ERROR",
  "result": {
    "message": "Ask timed out on [Actor[akka://JobServer/user/context-supervisor/439b2467-spark.jobserver.genderPrediction#884262439]] after [10000 ms]",
    "errorClass": "akka.pattern.AskTimeoutException",
    "stack: ["akka.pattern.PromiseActorRef$$anonfun$1.apply$mcV$sp(AskSupport.scala:334)", "akka.actor.Scheduler$$anon$7.run(Scheduler.scala:117)", "scala.concurrent.Future$InternalCallbackExecutor$.scala$concurrent$Future$InternalCallbackExecutor$$unbatchedExecute(Future.scala:694)", "scala.concurrent.Future$InternalCallbackExecutor$.execute(Future.scala:691)", "akka.actor.LightArrayRevolverScheduler$TaskHolder.executeTask(Scheduler.scala:467)", "akka.actor.LightArrayRevolverScheduler$$anon$8.executeBucket$1(Scheduler.scala:419)", "akka.actor.LightArrayRevolverScheduler$$anon$8.nextTick(Scheduler.scala:423)", "akka.actor.LightArrayRevolverScheduler$$anon$8.run(Scheduler.scala:375)", "java.lang.Thread.run(Thread.java:745)"]
  }
}

Spark JobServer によるより詳細なエラーの説明:

job-server[ERROR] Exception in thread "pool-100-thread-1" java.lang.AbstractMethodError: spark.jobserver.genderPrediction$.namedObjectsPrivate()Ljava/util/concurrent/atomic/AtomicReference;
job-server[ERROR]   at spark.jobserver.JobManagerActor$$anonfun$spark$jobserver$JobManagerActor$$getJobFuture$4.apply(JobManagerActor.scala:248)
job-server[ERROR]   at scala.concurrent.impl.Future$PromiseCompletingRunnable.liftedTree1$1(Future.scala:24)
job-server[ERROR]   at scala.concurrent.impl.Future$PromiseCompletingRunnable.run(Future.scala:24)
job-server[ERROR]   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
job-server[ERROR]   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
job-server[ERROR]   at java.lang.Thread.run(Thread.java:745)

誰かがコードを見たい場合:

package spark.jobserver
import org.apache.spark.SparkContext._
import org.apache.spark.{SparkContext}
import com.typesafe.config.{Config, ConfigFactory}
import collection.JavaConversions._
import scala.io.Source

object genderPrediction extends SparkJob with NamedRddSupport
{
  // Main function
  def main(args: scala.Array[String]) 
  {
    val sc = new SparkContext()
    sc.hadoopConfiguration.set("fs.tachyon.impl", "tachyon.hadoop.TFS")
    val config = ConfigFactory.parseString("")
    val results = runJob(sc, config)
  }

  def validate(sc: SparkContext, config: Config): SparkJobValidation = {SparkJobValid}

  def runJob(sc: SparkContext, config: Config): Any =
  {
    return "ok";
  }
}

バージョン情報: Spark は 1.5.0 - SparkJobServer は最新バージョンです

よろしくお願いします!

4

2 に答える 2

1

依存パッケージの .compile とランタイム ライブラリのバージョンが同じであることを確認してください。

于 2016-02-10T16:53:34.147 に答える
1

@noorul の回答に説明を追加する

古いバージョンの SJS でコードをコンパイルし、最新バージョンで実行しているようです。

NamedObjects が最近追加されました。サーバーが NamedObjects サポートを期待しており、それを使用してコードをコンパイルしなかったため、AbstractMethodError が発生しています。

また、SJS によって実行されないため、main メソッドは必要ありません。

于 2016-02-17T18:23:53.683 に答える