2015-10-21 4 views
1

Привет я начал искру потоковое обучение, но я не могу запустить простое приложение Мой код здесьСпарк Streaming StreamingContext ошибка

import org.apache.spark._ 
    import org.apache.spark.streaming._ 
    import org.apache.spark.streaming.StreamingContext._ 
    val conf = new SparkConf().setMaster("spark://beyhan:7077").setAppName("NetworkWordCount") 
    val ssc = new StreamingContext(conf, Seconds(1)) 
    val lines = ssc.socketTextStream("localhost", 9999) 
    val words = lines.flatMap(_.split(" ")) 

И я получаю сообщение об ошибке, как в следующем

scala> val newscc = new StreamingContext(conf, Seconds(1)) 
15/10/21 13:41:18 WARN SparkContext: Another SparkContext is being constructed (or threw an exception in its constructor). This may indicate an error, since only one SparkContext may be running in this JVM (see SPARK-2243). The other SparkContext was created at: 

Спасибо

ответ

3

Если вы используете искровую оболочку, и кажется, что вы это делаете, вы не должны создавать экземпляр StreamingContext, используя SparkConf, вы должны передать оболочку sc напрямую.

Это означает:

val conf = new SparkConf().setMaster("spark://beyhan:7077").setAppName("NetworkWordCount") 
val ssc = new StreamingContext(conf, Seconds(1)) 

становится

val ssc = new StreamingContext(sc, Seconds(1)) 
+0

спасибо, что ваш ответ правильный. :) но у меня есть другая проблема, когда я хочу запустить эту команду в пакете sbt. Я получаю эту ошибку /MyApp.scala:20: object Streaming не является членом пакета org. apache.spark [error] import org.apache.spark.Streaming._ –

+0

Вы должны обратиться к [Ссылки на Руководство по Spark Streaming #] (http://spark.apache.org/docs/latest/streaming-programming-guide. HTML). В принципе, добавьте 'libraryDependencies + =" org.apache.spark "%%" искрообразование "%" 1.5.1 "на ваш' build.sbt'. И, пожалуйста, ищите, прежде чем спросить! – mehmetminanc

+1

Вы также должны добавить его в качестве предоставленной зависимости, поскольку искровые потоковые библиотеки предоставляются самой искрыми и, следовательно, не нужно включать в сборку jar – mniehoff

1

Похоже, вы работаете в Спарк Shell. Здесь уже определен SparkContext, поэтому вам не нужно создавать новый. SparkContext в оболочке доступен как sc

Если вам нужен StreamingContext можно создать, используя существующую SparkContext:

val ssc = new StreamingContext(sc, Seconds(1)) 

Вам нужно только SparkConf и SparkContext, если вы создаете приложение.

+0

, так как ваш ответ правильный. :) но у меня есть другая проблема когда я хочу запустить эту команду в пакете sbt, я получаю эту ошибку /MyApp.scala:20: объект Streaming не входит в пакет org.apache.spark [error] import org.apache.spark.Streaming._ –

Смежные вопросы