在大数据技术发展早期,离线计算(批处理)作为唯一的大数据处理技术,很快在各个场景下取得了惊人成果,吸引了一大批优秀的科学家和工程师,这些因素的叠加使大数据技术快速成熟,形成了以HDFS+YARN+Spark为格局的Hadoop生态体系。
同时,离线计算也成为了大数据的主流技术,但在由Hadoop构筑的离线计算大厦上空,却也飘着几朵乌云,其中一朵就是高延迟。
1. 流处理架构产生的背景
Hadoop在设计之初便确定了架构目标:高吞吐、高容错、易扩展。而高吞吐和低延迟又在一定程度上对立,因此早期Hadoop在架构上就决定了其高延迟的缺陷,这直接限制了离线计算的使用场景。
而Storm、Spark Stream、Flink等大数据流处理框架的普及,对大数据技术早期的批处理计算逻辑带来了颠覆,解决了高延迟的问题,极大地扩充了大数据处理的使用场景,将大数据处理带到了一个全新的实时计算时代。实时计算的普及再一次推动着技术的进步和人们认知的提升,一些之前离线计算无法解决的低延迟场景开始迅速被实时计算所解决。
然而,在实际情况中,受限于资源性能的因素,很多问题往往需要辅助一些历史数据,因此并不能直接通过实时计算完成。在这些场景下,就要求实时计算需要配合离线计算共同完成某些任务。在这样的背景下,融合离线计算和实时计算的流处理框架应运而生。