Apache Spark 多上下文错误
Apache Spark multiple context error
我有一个 spark web 应用程序,我正试图在 tomcat 上部署它。
但是当我尝试使用 rest 调用启动 spark 时,它给出了以下错误。
org.apache.spark.SparkException: Only one SparkContext may be running in this JVM (see SPARK-2243). To ignore this error, set spark.driver.allowMultipleContexts = true
如何解决这个错误?
你可能在做这样的事情
val conf = new SparkConf().setAppName(appName).setMaster(master)
val sc1 = new SparkContext(conf)
...
val sc2 = new SparkContext(conf) // <<<< HERE
您应该只使用一个上下文,例如
val conf = new SparkConf().setAppName(appName).setMaster(master)
val sc = new SparkContext(conf)
...
sc.DoSomething()
sc.DoSomethingElse() // see, it is the same context
我发现了问题。
实际上 Spark 已经从其他用户启动,所以当我与我的用户启动它时,它给出了多个上下文错误。从其他用户帐户停止后,它工作正常。
我遇到了同样的情况,将 SparkContext 移出到新对象中很有帮助。
def spark = Action {
val logFile = "README.md"
val logData = SparkConnector.sc.textFile(logFile, 2).cache()
val numSparks = logData.filter(line => line.contains("POST")).count()
Ok(views.html.spark("Lines with Spark: " + numSparks))
}
SparkConnector.scala
object SparkConnector {
val sc = new SparkContext("local", "Application", "/opt/spark-1.5.2", List("target/scala-2.11/app_2.11-1.0-SNAPSHOT.jar"))
}
我有一个 spark web 应用程序,我正试图在 tomcat 上部署它。 但是当我尝试使用 rest 调用启动 spark 时,它给出了以下错误。
org.apache.spark.SparkException: Only one SparkContext may be running in this JVM (see SPARK-2243). To ignore this error, set spark.driver.allowMultipleContexts = true
如何解决这个错误?
你可能在做这样的事情
val conf = new SparkConf().setAppName(appName).setMaster(master)
val sc1 = new SparkContext(conf)
...
val sc2 = new SparkContext(conf) // <<<< HERE
您应该只使用一个上下文,例如
val conf = new SparkConf().setAppName(appName).setMaster(master)
val sc = new SparkContext(conf)
...
sc.DoSomething()
sc.DoSomethingElse() // see, it is the same context
我发现了问题。 实际上 Spark 已经从其他用户启动,所以当我与我的用户启动它时,它给出了多个上下文错误。从其他用户帐户停止后,它工作正常。
我遇到了同样的情况,将 SparkContext 移出到新对象中很有帮助。
def spark = Action {
val logFile = "README.md"
val logData = SparkConnector.sc.textFile(logFile, 2).cache()
val numSparks = logData.filter(line => line.contains("POST")).count()
Ok(views.html.spark("Lines with Spark: " + numSparks))
}
SparkConnector.scala
object SparkConnector {
val sc = new SparkContext("local", "Application", "/opt/spark-1.5.2", List("target/scala-2.11/app_2.11-1.0-SNAPSHOT.jar"))
}