线程“main” org.apache.spark.SparkException 中的异常:只有一个 SparkContext 可能在此 JVM 中运行(请参阅 SPARK-2243)

Jus*_*tin 2 java cassandra apache-spark spark-streaming

当我尝试使用 cassandra 运行 Spark 应用程序时出现错误。

Exception in thread "main" org.apache.spark.SparkException: Only one SparkContext may be running in this JVM (see SPARK-2243). 
Run Code Online (Sandbox Code Playgroud)

我使用的是 spark 版本 1.2.0,很明显我在我的应用程序中只使用了一个 spark 上下文。但是每当我尝试添加以下代码用于流式传输时,都会收到此错误。

JavaStreamingContext activitySummaryScheduler = new JavaStreamingContext(
            sparkConf, new Duration(1000));
Run Code Online (Sandbox Code Playgroud)

Rus*_*ssS 5

您一次只能有一个 SparkContext,并且由于 StreamingContext 中有一个 SparkContext,因此您不能在同一代码中拥有单独的 Streaming 和 Spark Context。您可以做的是从 SparkContext 构建一个 StreamingContext,以便您在确实需要时可以访问两者。

使用这个构造函数 JavaStreamingContext(sparkContext: JavaSparkContext, batchDuration: Duration)