我正在试验JobServer,并希望在我们的生产环境中使用它。
我想同时使用mllib和spark-jobserver,但我得到了一个错误(在spark-jobserver中,当一个作业被发送时)。
job-server[ERROR] Uncaught error from thread [JobServer-akka.actor.default-dispatcher-3] shutting down JVM since 'akka.jvm-exit-on-fatal-error' is enabled for ActorSystem[JobServer]
job-server[ERROR] java.lang.NoClassDefFoundError: org/apache/spark/mllib/stat/Statistics$
job-server[ERROR] at SparkCorrelation$.getCorrelation(SparkCorrelation.scala:50)
job-server[ERROR] at SparkCorrelation$.runJob(SparkCorrelation.scala:28)
job-server[ERROR] at SparkCorrelation$.runJob(SparkCorrelation.scala:11)
job-server[ERROR] at spark.jobserver.JobManagerActor$$anonfun$spark$jobserver$JobManagerActor$$getJobFuture$4.apply(JobManagerActor.scala:234)我使用的是spark-jobserver 0.5.0和spark 1.2。
对此有什么想法吗?
代码:
def getCorrelation(sc: SparkContext):Double={
val pathFile = "hdfs://localhost:9000/user/hduser/correlacion.csv"
val fileData = getFileData(sc,pathFile)
val colX = getDoubleColumn(fileData,1)
val colY = getDoubleColumn(fileData,2)
Statistics.corr(colX,colY,"pearson")
}
override def runJob(sc: SparkContext, config: Config): Any = {/*
val dd = sc.parallelize(config.getString("input.string").split(" ").toSeq)
dd.map((_, 1)).reduceByKey(_ + _).collect().toMap*/
getCorrelation(sc)
}发布于 2016-01-27 21:57:35
如果你还想知道的话。只需在本地模式下使用SPARK-CLASSPATH链接到MLlib即可。
或者,只需修改Dependencies.scala即可访问Mllib。只需将其添加到lazy val SparkDeps中的序列即可。
这两种解决方案都可以在这里找到:
https://github.com/spark-jobserver/spark-jobserver/issues/341
https://github.com/spark-jobserver/spark-jobserver/issues/138
https://stackoverflow.com/questions/29953423
复制相似问题