《基于Apache Flink的流处理》读书笔记

         ~~~~~~~~         前段时间详细地阅读了 《Apache Flink的流处理》 这本书,作者是 Fabian Hueske&Vasiliki Kalavri,国内崔星灿翻译的,这本书非常详细、全面得介绍了Flink流处理,并且以气象数据的例子讲解其中的使用,我把其中一些比较重要的句子做了比较,并且分享给大家。有一些我不是很理解,需要以后慢慢去消化,我就不做详细的展开。

一、传统的数据处理框架

1.1事务型处理

         ~~~~~~~~         企业在日常业务运营过程中会用到各类基于web的应用,通常是业务系统,比如订单、客户系统等等
         ~~~~~~~~         通常一个应用对于1个或多个数据库,应用通过执行远程数据库系统的事务来读取或更新状态

1.2分析型处理

         ~~~~~~~~         存储于不同事务类型数据系统中的数据,可以为企业提供业务运营相关的分析见解,通常是将数据从业务系统的数据库中复制到数仓,然后再进行分析和查询。这个过程称为ETL。

二、Flink和Spark的区别

2.1共同点

         ~~~~~~~~         高吞吐、在压力下保持正确

2.2不同点:

         ~~~~~~~~          1.本质上,Spark是微批处理,而Flink是流处理
         ~~~~~~~~          2.Flink低延迟
         ~~~~~~~~          3.Flink支持时间语义,可通过WaterMark来处理乱序数据,如果Spark要处理乱序数据只能通过RDD排序来实现
         ~~~~~~~~          4.Flink支持状态编程,使用方式更加灵活
         ~~~~~~~~          5.Flink提供精确一次的状态一致性保障

2.3本质区别:

         ~~~~~~~~         本质上是流与微批的区别

2.4 数据模型:

         ~~~~~~~~         Spark采用RDD模型,Spark Streaming的DStream实际上也就是一组小批数据的RDD的集合
         ~~~~~~~~         Flink基本数据是流,以及事件Event序列

2.5运行架构:

         ~~~~~~~~         Spark是批计算,将DAG划分成不同的stage,一个完成后才可以计算下一个
         ~~~~~~~~         Flink是标准的流执行模式,一个事件在处理后可以直接发往下一个节点

三、Flink流处理基础

3.1DataFlow图

         ~~~~~~~~         描述了数据在不同操作之间流动。
         ~~~~~~~~         通常表现为有向图,顶点表现为算子,表示计算,边表示数据的依赖关系

3.2StreamGraph

         ~~~~~~~~         根据用户通过StreamAPI编写的代码生成的最初的图,由2部分构成:
         ~~~~~~~~          1.StreamNode,代表算子,表示计算
         ~~~~~~~~          2.StreamEdge:连接两个StreamNode的边,表示数据的依赖关系

3.3JobGraph

         ~~~~~~~~          StreamGraph经过优化后生成了JobGraph,提交给JobManager的数据结构,由以下3个构成:
         ~~~~~~~~          1.JobVertex:经过优化后符合条件的多个StreamNode可能串联在一起生成1个JobVertex
         ~~~~~~~~          2.JobEdge:连接JobVertex,代表了JobGraph的依赖关系。
         ~~~~~~~~          3.IntermediateDataSet:经过JobVertex节点处理的数据输出

3.4ExecutionGraph

         ~~~~~~~~          JobGraph的并行版本,由JobManager生成,调度底层的核心数据结构

3.5物理执行图

         ~~~~~~~~         JobManager根据ExecutionGraph对Job进行调度,在TaskManager上部署后形成的图,并不是一个数据结构

四、算子状态

4.1本地变量

         ~~~~~~~~         单个算子同一并行度子任务可以访问,其余都不行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值