flink入门-流式计算概念

本文介绍了流式计算的世界观,强调事件和时间的重要性。流式计算实体包括架构、计算及其应用场景,如低延时实时处理、实时ETL和事件驱动。文章还探讨了流计算面临的挑战,如时间处理、内存限制、错误恢复和分布式环境管理。最后,作者鼓励读者深入学习流计算,特别是Flink,以应对大数据时代的实时需求。
摘要由CSDN通过智能技术生成

一、流式计算的世界观

1.1 万物皆流

只要时间不停万事万物都没有静止。我们所以为的静态,不过是流中的一个片段。
意味着流的世界,不在乎所谓的状态,在乎的是变化,也就是事件的发生,通过事件来表示。

1.2 升维

批量的时代,我们只记录关键的信息,只在乎当前的状态,不会去记录状态是如何一步步变化至当前状态的,计算所面向的数据也是静态的,从一个态的数据变化到另一个静态的数据。

流的时代我们在乎的是变化,也就是一系列的事件,我们计算所面临将是时时刻刻在更新流动的数据。

这完全就上升了一个维度,就像四维生物可以穿梭于时间之中。

1.3 流的时间观念

时间对流来说是至关重要的,因为这关系事件与事件之间的顺序关系,一旦错乱便有可能导致计算出的当前状态是错误的。时间让事件有了秩序。

二、流式计算的实体

2.1 架构

数据源不断产生数据形成流,通过计算生成新的流,不断去更新目标数据源,实现结果数据的实时更新。

2.2 计算

流式计算和批量计算的算子无外乎都是那些数据的操作。区别就是批量面向的数据是一坨一坨打包好的,静态的;流式面向的是流无限的数据。在分布式环境中批量计算是将计算移动到相应的数据上进行运行,而流式计算是将定义好的计算部署到分布式的节点上,让数据在上面流动。

 

  • Map类:数据只依赖于当前这条数据。
  • agg:聚合操作
  • window:部分数据的聚到一起进行计算
  • join:不同的数据源通过相同的key进行融合
  • cep:例如,事件的模式匹配,例如给做了事件A之后做了事件B的用户发生运营短信。
  • 其他

2.2 应用场景

1.低延时。比如实时的pv、uv。
2.实时ETL。例如行为数据join维表,近实时落入hdfs。
3.事件驱动场景。例如上面的cep。

三、流计算的难点

3.1 时间

第一部分说时间在流的世界观中代表了事件的秩序,因为实时的环境会由于各种各样的原因(比如网络延时)导致事件到达计算节点的顺序和发生的顺序很可能是不一样的。

3.2 有限的内存&无限的数据

流计算面临的是源源不断流入的数据,而如果还像批量计算那样的操作方式来计算的化,很可能就会导致计算根本无法结束,或者随着时间的推移需要保存的数据越来越多,导致内存爆掉。

3.3 longlive&错误恢复

因为数据是不断产生的,所以需要计算是longlive的,一直存在。但时间长了出问题的概率大大增加,一旦挂掉,一些计算过程缓存的数据怎么保存、怎么恢复机会是个比较大的问题。

3.4 分布式环境

分布式环境下,共享数据实时同步,实现协同,这又是另一个故事了。

3.5 动态扩容

流是实时的,那数据的速率就是不稳定的,就像明星结婚啥的,会有突发的高峰,如何能实时适应这样的突发。

四、总结

本文希望同学们能对流计算有个大概的了解,了解它的应用场景、架构、所面临的难点。了解了这些接下来学习就有了方向。

欢迎关注我的博客 学习更多大数据知识 https://blog.csdn.net/zzzqqq111222

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值