只能在JVM中同时激活一个StreamingContext。
想象一下,我计划从两个Kafka主题中读取/处理数据,其中有一个作业从一个Kafka主题获取数据,另一个从另一个kafka主题获取数据。我可以同时在同一个hadoop集群上并行触发这两个作业吗?
它还说明了,
上下文停止后,无法重新启动。
因此,如果由于某种原因我必须停止火花作业,那么重新启动它的方法是什么?我是通过oozie还是其他东西触发它?
答案 0 :(得分:3)
我可以在同一个hadoop集群上并行触发这两个作业 同时?
为简单起见,请清除条款。 StreamingContext
在Spark作业中是唯一的。如果要在同一作业中读取多个流,可以通过将相同的StreamingContext
两次传递给不同的KafkaUtils.createStream
方法来实现。
如果你有多个职位,你提交给Spark,那么每个人都可以拥有它StreamingContext
。每个作业都有自己的JVM实例。
因此,如果由于某种原因我必须停止火花工作,那么方法是什么 让它重新启动?
实现目标的一种可能方法是使用Spark的群集模式来运行流式传输作业并传递--supervise
标志。 Spark Master将确保在失败时重新启动作业。
您可以在Sparks "Submitting Applications"文档中阅读更多内容。