|
Structured Streaming是一种基于Spark SQL引擎构建的、可扩展且容错的流处理引擎。通过一致的API,Structured Streaming使得使用者可以像写批处理程序一样编写流处理程序,简化了使用者的使用难度。提供端到端的完全一致性是Structured Streaming设计背后的关键目标之一,为了实现这一点,Spark设计了输入源、执行引擎和接收器,以便对处理的进度进行更可靠地跟踪,使之可以通过重启或重新处理,来处理任何类型的故障。如果所使用的源具有偏移量来跟踪流的读取位置,那么,引擎可以使用检查点和预写日志,来记录每个触发时期正在处理的数据的偏移范围;此外,如果使用的接收器是“幂等”的,那么通过使用重放、对“幂等”接收数据进行覆盖等操作,Structured Streaming可以确保在任何故障下达到端到端的完全一致性。 Spark一直在不停更新中,从Spark 2.3.0版本开始引入了持续流式处理模型,可以将原先流处理的延迟降低到毫秒级别。 【出处】林子雨,郑海山,赖永炫.Spark编程基础(Python版).人民邮电出版社,2020年3月.
|