Flink学习之Flink的诞生
一、Flink是什么?
Apache Flink 是一个框架和分布式处理引擎,用于在无边界和有边界数据流上进行有状态的计算。Flink 能在所有常见集群环境中运行,并能以内存速度和任意规模进行计算。
二、诞生背景
1. Lambda架构
基于批量数据的计算系统(MapReduce 作业)很难做到低延迟,用 Storm 开发的实时流处理技术可以帮助解决延迟性的问题,但是Storm 不支持 exactly-once 语义,因此不能保证状态数据的正确性,另外它也不支持基于事件时间的处理。将上述两个方案结合起来,既保证低延迟,又保障正确性。这个方法被称作 Lambda 架构,它通过批量 MapReduce作业提供了虽有些延迟但是结果准确的计算,同时通过Storm将最新数据的计算结果初步展示出来。
数据流进入系统后,同时发往Batch Layer和Speed Layer处理。Batch Layer以不可变模型离线存储所有数据集,通过在全体数据集上不断重新计算构建查询所对应的Batch Views。Speed Layer处理增量的实时数据流,不断更新查询所对应的Realtime Views。Serving Layer响应用户的查询请求,合并Batch View和Realtime View中的结果数据集到最终的数据集。
缺点
实时与批量计算结果不一致引起的数据口径问题
批量计算在