Apache Flink 的定义、架构及原理

作者:陈守元 & 戴资力

整理:闵阁

 

陈守元(巴真)

阿里巴巴高级产品专家

嘉宾简介:阿里巴巴实时计算团队产品负责人,2010年毕业即加入阿里集团参与淘宝数据平台建设,近10年的大数据从业经验,开源项目Alibaba DataX发起人,当前负责阿里实时计算产品Flink的规划与设计,致力于推动Flink成为下一代大数据处理标准。

 

戴资力(Gordon Tai)

Apache Flink PMC ,Ververica Software Engineer

嘉宾简介:戴资力(Gordon Tai)是 Apache Flink 开源社区的 PMC 成员,目前任职于 Ververica 担任 Software Engineer,主要负责 Flink 的系统开发。在 Flink 的主要贡献包含:Apache Kafka / AWS Kinesis 精确一次连接数据源,数据类序列化框架,有状态流处理的应用升级等。曾于 Flink Forward San Francisco / Berlin / Beijing 与 Strata Data 担任讲者分享 Flink 相关议题。

一、Apache Flink 的定义、架构及原理

Apache Flink 是一个分布式大数据处理引擎,可对有限数据流和无限数据流进行有状态或无状态的计算,能够部署在各种集群环境,对各种规模大小的数据进行快速计算。

1. Flink Application

了解Flink 应用开发需要先理解Flink 的Streams、State、Time 等基础处理语义以及Flink 兼顾灵活性和方便性的多层次API。

  • Streams:流,分为有限数据流与无限数据流,unbounded stream 是有始无终的数据流,即无限数据流;而bounded stream 是限定大小的有始有终的数据集合,即有限数据流,二者的区别在于无限数据流的数据会随时间的推演而持续增加,计算持续进行且不存在结束的状态,相对的有限数据流数据大小固定,计算最终会完成并处于结束的状态。

  • State,状态是计算过程中的数据信息,在容错恢复和Checkpoint 中有重要的作用,流计算在本质上是Incremental Processing,因此需要不断查询保持状态;另外,为了确保Exactly- once 语义,需要数据能够写入到状态中;而持久化存储,能够保证在整个分布式系统运行失败或者挂掉的情况下做到Exactly- once,这是状态的另外一个价值。

  • Time,分为Event time、Ingestion time、Processing time,Flink 的无限数据流是一个持续的过程,时间是我们判断业务状态是否滞后,数据处理是否及时的重要依据。

  • API,API 通常分为三层,由上而下可分为SQL / Table API、DataStream API、ProcessFunction 三层,API 的表达能力及业务抽象能力都非常强大,但越接近SQL 层,表达能力会逐步减弱,抽象能力会增强,反之,ProcessFunction 层API 的表达能力非常强,可以进行多种灵活方便的操作,但抽象能力也相对越小。

2. Flink Architecture

在架构部分,主要分为以下四点:

第一,Flink 具备统一的框架处理有界和无界两种数据流的能力

第二, 部署灵活,Flink 底层支持多种资源调度器,包括Yarn、Kubernetes 等。Flink 自身带的Standalone 的调度器,在部署上也十分灵活。

第三, 极高的可伸缩性,可伸缩性对于分布式系统十分重要,阿里巴巴双11大屏采用Flink 处理海量数据,使用过程中测得Flink 峰值可达17 亿/秒。

第四, 极致的流式处理性能。Flink 相对于Storm 最大的特点是将状态语义完全抽象到框架中,支持本地状态读取,避免了大量网络IO,可以极大提升状态存取的性能。

3. Flink Operation

后面会有专门课程讲解,此处简单分享Flink 关于运维及业务监控的内容:

  • Flink具备7 X 24 小时高可用的SOA(面向服务架构),原因是在实现上Flink 提供了一致性的Checkpoint。Checkpoint是Flink 实现容错机制的核心,它周期性的记录计算过程中Operator 的状态,并生成快照持久化存储。当Flink 作业发生故障崩溃时,可以有选择的从Checkpoint 中恢复,保证了计算的一致性。

  • Flink本身提供监控、运维等功能或接口,并有内置的WebUI,对运行的作业提供DAG 图以及各种Metric 等,协助用户管理作业状态。

<

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值