继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

Structured Streaming中,如果trigger触发时前一批数据还没处理完怎么办?

慕村9548890
关注TA
已关注
手记 1260
粉丝 227
获赞 990

以下内容摘自论文《Structured Streaming:A Declarative API for Real-time Applications in Apache Spark》——7.3节

自适应批处理:流应用偶尔会经历大的数据积压。例如,两个数据中心之间的网络性能下降会暂时延迟数据的传输,或者可能只是简单的用户活动激增。在这些情况下,Structured Streaming为了跟上输入流,会执行更长时间。这不会对延迟的影响很大,考虑到数据已经积压,这会让系统更快的跟上数据输入的速度。在云环境中,操作可以临时向集群添加额外的节点。

以下内容摘自Databricks博客《Introducing Low-latency Continuous Processing Mode in Structured Streaming in Apache Spark 2.3》

webp

image.png


在这种体系结构中,driver将检查点保存到WAL日志中,该日志可以用于重新启动查询。请注意,下一个micro-batch中要处理的范围偏移量将在其开始之前保存在日志中,以便获得确定性的重新执行和end-to-end语义。因此,source上可用的记录可能必须等待当前micro-batch处理完成,然后记录其偏移量,并在下一个micro-batch中进行处理。

经过实验验证:

设定trigger的触发时间为100ms,不断的对source写入数据,可以发现前一个trigger触发的数据批次计算job如果没有处理完,后一个job不会启动,不会并行的去执行job。
每个trigger触发时会启动一个新的job计算当前批次数据。


webp

image.png



作者:阿猫阿狗Hakuna
链接:https://www.jianshu.com/p/bc626390cf48


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP