流处理和批处理

概念

sparkstreaming所做的是微批处理(每隔几秒处理一次),而flink做的是流处理(每一条数据都会处理一次);

批处理的数据大小固定,数据可以直接在hdfs上看到
流处理是不断有数据过来的,是7*24小时不断运行的,但是数据量是可以预估的,一秒十条,整体一小时可以预估到

批处理可以做很多复杂的业务,开窗、分组聚合什么都可以,流处理只能做简单的操作,但是flink可以做一些复杂的操作

批处理的数据需要落地,有shuffle阶段,流处理从数据过来到出结果,都很迅速,及时响应

解决实时与离线的数据架构 实时处理和离线处理_解决实时与离线的数据架构

处理过程

1、流处理

数据采集之后先进入消息队列进行排队,做排队是为了缓冲减压,数据先放在队列中,能拿多少拿多少,然后进行处理,处理完进入数据库

解决实时与离线的数据架构 实时处理和离线处理_大数据_02


2、批处理

批处理先进入数据库再计算

解决实时与离线的数据架构 实时处理和离线处理_解决实时与离线的数据架构_03

特点

离线计算,一次可以处理一年、甚至更多的数据

实时处理,再次提取数据代价很大,得重新算

解决实时与离线的数据架构 实时处理和离线处理_big data_04

无界流和有界流

概念

解决实时与离线的数据架构 实时处理和离线处理_大数据_05


flink将数据抽象为流,分为无界流(有开始没有结束,Kafka数据)和有界流(有开始有结束,hdfs数据),无界的流不尽,有界的流完就结束了

实时计算的挑战

解决实时与离线的数据架构 实时处理和离线处理_解决实时与离线的数据架构_06


数据处理的唯一性:

只处理一次,

至少一次->可能有重复数据,

最多一次->可能会丢数据

可扩展:可以在一个服务器运行,也可以在很多台服务器运行

感谢阅读,我是啊帅和和,一位大数据专业大四学生,祝你快乐。