2015-04-14 85 views
1

我有我試圖在Tomcat上部署一個火花的Web應用程序。 但是,當我試圖啓動使用休息調用火花它給以下錯誤。阿帕奇星火多個上下文錯誤

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 

如何解決此錯誤?

回答

0

我發現了這個問題。 其實Spark已經從其他用戶啓動,所以當我用我的用戶啓動它時,它給出了多個上下文錯誤。從其他用戶帳戶停止後,其工作正常。

0

你可能做這樣的事情

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 
+0

我做同樣的事情。現在它的錯誤提示如下: 文件文件:/ home/user/checkpoint/351bac20-e6d5-41bc-be15-79070b31dbb3不存在。但/ home/user/checkpoint目錄存在。 – OneUser

+0

@ user3359790你有多少工人?如果不止一個,你必須將數據複製到所有的數據。或者,您可以使用Hadoop HDFS fily系統並從中讀寫文件。它是一個分佈式文件系統,可以在所有節點上工作,就好像它只是一個節點 – oleksii

+0

我只有一個工人。並且我沒有使用HDFS – OneUser

0

我有同樣的情況,並搬出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")) 
}