流处理和批处理
概念
sparkstreaming所做的是微批处理(每隔几秒处理一次),而flink做的是流处理(每一条数据都会处理一次);
批处理的数据大小固定,数据可以直接在hdfs上看到
流处理是不断有数据过来的,是7*24小时不断运行的,但是数据量是可以预估的,一秒十条,整体一小时可以预估到
批处理可以做很多复杂的业务,开窗、分组聚合什么都可以,流处理只能做简单的操作,但是flink可以做一些复杂的操作
批处理的数据需要落地,有shuffle阶段,流处理从数据过来到出结果,都很迅速,及时响应
处理过程
1、流处理
数据采集之后先进入消息队列进行排队,做排队是为了缓冲减压,数据先放在队列中,能拿多少拿多少,然后进行处理,处理完进入数据库
2、批处理
批处理先进入数据库再计算
特点
离线计算,一次可以处理一年、甚至更多的数据
实时处理,再次提取数据代价很大,得重新算
无界流和有界流
概念
flink将数据抽象为流,分为无界流(有开始没有结束,Kafka数据)和有界流(有开始有结束,hdfs数据),无界的流不尽,有界的流完就结束了
实时计算的挑战
数据处理的唯一性:
只处理一次,
至少一次->可能有重复数据,
最多一次->可能会丢数据
可扩展:可以在一个服务器运行,也可以在很多台服务器运行
感谢阅读,我是啊帅和和,一位大数据专业大四学生,祝你快乐。