在Spring-XD中跨多个Spark Streams共享SparkContext

时间:2015-05-21 20:37:42

标签: apache-spark spark-streaming spring-xd

两个Spark流处理器模块可以在同一个XD容器中共享相同的SparkContext(不是流式上下文)吗?

1 个答案:

答案 0 :(得分:0)

不,XD容器只能运行一个SparkContext(反过来又是SparkStreamingContext)。由于Spark不允许您在同一个JVM上拥有多个SparkContexts,直到至少解决了此故障单:https://issues.apache.org/jira/browse/SPARK-2243

Spring XD将XD容器限制为只有单个 XD火花流模块(无论它是处理器还是接收器)

有关更多信息,您可以查看构造SparkStreamingContext(以及SparkContext)的实现:

https://github.com/spring-projects/spring-xd/blob/master/spring-xd-dirt/src/main/java/org/springframework/xd/dirt/plugins/spark/streaming/SparkStreamingPlugin.java

并且,这个限制XD容器只有一个Spark流式XD模块:

https://github.com/spring-projects/spring-xd/blob/master/spring-xd-dirt/src/main/java/org/springframework/xd/dirt/spark/SparkStreamingContainerFilter.java

如果您认为自己有更好的策略并跟进JIRA,请告诉我们。谢谢!