다음과 같은 에러가 발생한다는 것은.. 실행시 SparkContext가 두 개 이상의 인스턴스가 있다는 의미이다.
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:
spark-shell을 실행할 때, 이미 SparkContext가 이미 생성되어 있다.
scala> sc
res0: org.apache.spark.SparkContext = org.apache.spark.SparkContext@26a004ed
이 때 새로운 SparkContext를 생성할 때 해당 예외가 발생한다.
scala> val conf = new SparkConf().setAppName("aaa")
conf: org.apache.spark.SparkConf = org.apache.spark.SparkConf@64d42d3d
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)
StreamingContext를 기존의 sc로 바인딩하면 에러가 발생하지 않는다.
scala> val ssc = new StreamingContext(sc, Seconds(1))
ssc: org.apache.spark.streaming.StreamingContext = org.apache.spark.streaming.StreamingContext@55ff64fd
만약 두 개의 SparkContext를 유지하려면, SparkConf에 다음 설정을 추가한다.
conf.set("spark.driver.allowMultipleContexts","true");
'scala' 카테고리의 다른 글
[spark] RDD 테스트 - word count 예제 (0) | 2017.03.15 |
---|---|
[spark] spark 2.0, 2.1 사용시 주의사항 - java.util.NoSuchElementException: None.get (0) | 2017.03.14 |
[spark] submit할 때 The main method in the given main class must be static 해결하기 (0) | 2017.03.14 |
[scala] 컬렉션의 padTo 예제 (0) | 2017.03.13 |
[scala] mkString 예제 (0) | 2017.03.13 |