【问题标题】:How to run sqlContext in the spark-jobserver如何在 spark-jobserver 中运行 sqlContext
【发布时间】:2017-02-17 23:26:02
【问题描述】:

我正在尝试在 spark-jobserver 中本地执行作业。我的应用程序具有以下依赖项:

name := "spark-test"

version := "1.0"

scalaVersion := "2.10.6"

resolvers += Resolver.jcenterRepo

libraryDependencies += "org.apache.spark"  %%  "spark-core"  %  "1.6.1"
libraryDependencies += "spark.jobserver"  %%  "job-server-api" % "0.6.2" % "provided"
libraryDependencies += "com.datastax.spark" %% "spark-cassandra-connector" % "1.6.2"
libraryDependencies += "org.apache.spark" %% "spark-sql" % "1.6.2"
libraryDependencies += "com.holdenkarau" % "spark-testing-base_2.10" % "1.6.2_0.4.7" % "test"

我使用以下方法生成了应用程序包:

sbt assembly

在那之后,我已经提交了这样的包:

curl --data-binary @spark-test-assembly-1.0.jar localhost:8090/jars/myApp

当我触发作业时,出现以下错误:

{
  "duration": "0.101 secs",
  "classPath": "jobs.TransformationJob",
  "startTime": "2017-02-17T13:01:55.549Z",
  "context": "42f857ba-jobs.TransformationJob",
  "result": {
    "message": "java.lang.Exception: Could not find resource path for Web UI: org/apache/spark/sql/execution/ui/static",
    "errorClass": "java.lang.RuntimeException",
    "stack": ["org.apache.spark.ui.JettyUtils$.createStaticHandler(JettyUtils.scala:180)", "org.apache.spark.ui.WebUI.addStaticHandler(WebUI.scala:117)", "org.apache.spark.sql.execution.ui.SQLTab.<init>(SQLTab.scala:34)", "org.apache.spark.sql.SQLContext$$anonfun$createListenerAndUI$1.apply(SQLContext.scala:1369)", "org.apache.spark.sql.SQLContext$$anonfun$createListenerAndUI$1.apply(SQLContext.scala:1369)", "scala.Option.foreach(Option.scala:236)", "org.apache.spark.sql.SQLContext$.createListenerAndUI(SQLContext.scala:1369)", "org.apache.spark.sql.SQLContext.<init>(SQLContext.scala:77)", "jobs.TransformationJob$.runJob(TransformationJob.scala:64)", "jobs.TransformationJob$.runJob(TransformationJob.scala:14)", "spark.jobserver.JobManagerActor$$anonfun$spark$jobserver$JobManagerActor$$getJobFuture$4.apply(JobManagerActor.scala:301)", "scala.concurrent.impl.Future$PromiseCompletingRunnable.liftedTree1$1(Future.scala:24)", "scala.concurrent.impl.Future$PromiseCompletingRunnable.run(Future.scala:24)", "java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)", "java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)", "java.lang.Thread.run(Thread.java:745)"]
  },
  "status": "ERROR",
  "jobId": "a6bd6f23-cc82-44f3-8179-3b68168a2aa7"
}

这是应用程序中失败的部分:

override def runJob(sparkCtx: SparkContext, config: Config): Any = {
    val sqlContext = new SQLContext(sparkCtx)
    ...
}

我有一些问题:

1) 我注意到要在本地运行 spark-jobserver,我不需要安装 spark。 spark-jobserver 是否已经嵌入了 spark ?

2) 我如何知道 spark-jobserver 使用的 spark 版本是什么?那是哪里?

3) 我使用的是 spark-sql 的 1.6.2 版本。我应该更改还是保留它?

如果有人能回答我的问题,我将不胜感激。

【问题讨论】:

  • 你现在运行的 spark-jobserver 怎么样?
  • 嗨@noorul。我正在像这样运行 spark-jobserver:job-server/reStart
  • 这个答案对你有帮助吗?
  • 是的,我可以运行它。谢谢!

标签: apache-spark spark-jobserver


【解决方案1】:
  1. 是的,spark-jobserver 具有 spark 依赖项。您应该使用 job-server-extras/reStart 而不是 job-server/reStart,这将帮助您获取与 sql 相关的依赖项。
  2. 查看项目/Versions.scala
  3. 我认为你不需要 spark-sql,因为如果你运行 job-server-extras/reStart 就会包含它

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-27
    • 2021-08-15
    • 1970-01-01
    • 2016-11-24
    相关资源
    最近更新 更多