[spark] Only one SparkContext may be running in this JVM - StreamingContext
scala 2017. 3. 24. 19:53스파크 쉘에서 streaming을 테스트하기 위해 코드를 그대로 따라하면 Only one SparkContext may be running in this JVM 이라는 Exception이 발생한다.
scala> import org.apache.spark._
import org.apache.spark._
scala> import org.apache.spark.streaming._
import org.apache.spark.streaming._
scala> import org.apache.spark.streaming.StreamingContext._
import org.apache.spark.streaming.StreamingContext._
scala> val conf = new SparkConf().setMaster("local[2]").setAppName("NetworkWordCount")
conf: org.apache.spark.SparkConf = org.apache.spark.SparkConf@38394e76
scala> val ssc = new StreamingContext(conf, Seconds(1))
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. The currently running SparkContext was created at:
org.apache.spark.sql.SparkSession$Builder.getOrCreate(SparkSession.scala:860)
org.apache.spark.repl.Main$.createSparkSession(Main.scala:95)
Exception이 발생하는 이유는 데몬이 떠 있어서 그런 것이 아나라 스파크 쉘에 spark context(sc)가 있기 때문이다. 아래와 같이 코딩하면 에러가 발생하지 않고 spark streaming 객체를 얻을 수 있다.
import org.apache.spark._
import org.apache.spark.streaming._
import org.apache.spark.streaming.StreamingContext._
val ssc = new StreamingContext(sc, Seconds(1))
'scala' 카테고리의 다른 글
[spark2.0] dataframe의 filter,where,isin,select,contains,col,between,withColumn, 예제 (0) | 2017.03.28 |
---|---|
[spark] spark-shell에서 특정 라이브러리의 의존성 라이브러리 다운받기(spark cassandra connector 라이브러리 다운받기) (0) | 2017.03.25 |
[spark] rdd의 stats 함수 (0) | 2017.03.24 |
[spark 1.6] hive 접근하기 (0) | 2017.03.22 |
[scala] null var 사용할 때 타입 사용하기 (0) | 2017.03.16 |