停止spark流式上下文kafkaDirectStream

时间:2016-05-02 22:39:05

标签: scala apache-spark spark-streaming

我想从kafka主题接收和处理完成后结束流处理。停止不应该是时间特定的(awaitTerminationOrTimeout)。有没有办法在话题耗尽后停止sparkstreamingcontext。有没有办法让Dstream [T]与T值进行比较以决定控制流程?

2 个答案:

答案 0 :(得分:0)

如果流为空,那么headOption应该返回true并且KafkaMessageStream<div ng-show="loadCountry== 'success'> <button class="btn dropdown-toggle" type="button" id="btnCntry" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true"> {{selectedCountry}} <span class="caret"></span> </button> <ul class="dropdown-menu" aria-labelledby="btnCntry"> <li ng-repeat="country in countryList"> <a>{{country.name}}</a> </ul> </div> 上应该为“无”,这大约是80%。

答案 1 :(得分:0)

最好的方法是,在开始阅读流之前,获取主题中所有分区的最新偏移量,然后检查接收到的偏移量何时到达那里。如果您想了解如何获取主题的偏移量,请参阅我的 previous answer

流程最终成为:

  1. 获取主题的分区和代理
  2. 对于每个经纪人,请创建SimpleConsumer
  3. 对于每个分区,请执行返回的OffsetRequest 最早和最新的补偿(见上一个答案)
  4. 然后在阅读邮件时,检查收到的邮件的偏移量 相对于已知的分区最后一个偏移量
  5. 每个分区收到的所有偏移量都与之相同 最新收到的OffsetRequest已完成
相关问题