Как получить больше StreamingContexts в одном приложении Spark? - PullRequest
0 голосов
/ 17 мая 2018

Я пытаюсь запустить потоковую работу искры на оболочке искры, localhost.Следуя коду из здесь , это то, что я впервые попробовал:

import org.apache.spark._
import org.apache.spark.streaming._
import org.apache.spark.streaming.StreamingContext._ 

val conf = new SparkConf().setMaster("local[2]").setAppName("NetworkWordCount")
val ssc = new StreamingContext(conf, Seconds(30))

, который дает следующие ошибки:

org.apache.spark.SparkException: Onlyв этой JVM может быть запущен один SparkContext (см. SPARK-2243).Чтобы игнорировать эту ошибку, установите spark.driver.allowMultipleContexts = true.

И поэтому мне пришлось попробовать это:

import org.apache.spark._
import org.apache.spark.streaming._
import org.apache.spark.streaming.StreamingContext._ 

val conf = new SparkConf().setMaster("local[2]").setAppName 
("NetworkWordCount").set("spark.driver.allowMultipleContexts", "true")
val ssc = new StreamingContext(conf, Seconds(30))

Это выполняется, но со следующим предупреждением:

2018-05-17 17:01:14 ПРЕДУПРЕЖДЕНИЕ SparkContext: 87 - Обнаружено несколько запущенных SparkContexts в одной и той же JVM!

Поэтому я хотел бы знать, может лиМожно ли еще одним способом объявить объект StreamingContext, для которого не требуется allowMulipleContexts == True, так как он выглядит с использованием нескольких контекстов не рекомендуется ?Спасибо

1 Ответ

0 голосов
/ 17 мая 2018

Вам необходимо использовать существующий SparkContext sc для создания StreamingContext

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

Когда вы создаете его с использованием альтернативного конструктора, то есть того, который с SparkConf создает внутри себяеще один SparkContext, и именно поэтому вы получаете это предупреждение.

...