Spark Streaming StreamingContext活跃计数

时间:2016-05-20 05:37:00

标签: hadoop apache-spark streaming spark-streaming

spark docs州:

  

只能在JVM中同时激活一个StreamingContext。

想象一下,我计划从两个Kafka主题中读取/处理数据,其中有一个作业从一个Kafka主题获取数据,另一个从另一个kafka主题获取数据。我可以同时在同一个hadoop集群上并行触发这两个作业吗?

它还说明了,

  

上下文停止后,无法重新启动。

因此,如果由于某种原因我必须停止火花作业,那么重新启动它的方法是什么?我是通过oozie还是其他东西触发它?

1 个答案:

答案 0 :(得分:3)

  

我可以在同一个hadoop集群上并行触发这两个作业   同时?

为简单起见,请清除条款。 StreamingContext在Spark作业中是唯一的。如果要在同一作业中读取多个流,可以通过将相同的StreamingContext两次传递给不同的KafkaUtils.createStream方法来实现。

如果你有多个职位,你提交给Spark,那么每个人都可以拥有它StreamingContext。每个作业都有自己的JVM实例。

  

因此,如果由于某种原因我必须停止火花工作,那么方法是什么   让它重新启动?

实现目标的一种可能方法是使用Spark的群集模式来运行流式传输作业并传递--supervise标志。 Spark Master将确保在失败时重新启动作业。

您可以在Sparks "Submitting Applications"文档中阅读更多内容。