Flink实时计算框架简介

这篇具有很好参考价值的文章主要介绍了Flink实时计算框架简介。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

(一)Flink介绍

Apache Flink 是一个开源的分布式,高性能,高可用,准确的流处理框架。

  • 分布式:表示flink程序可以运行在很多台机器上,
  • 高性能:表示Flink处理性能比较高
  • 高可用:表示flink支持程序的自动重启机制。
  • 准确的:表示flink可以保证处理数据的准确性。
  • Flink支持流处理和批处理,虽然我们刚才说了flink是一个流处理框架,但是它也支持批处理。
  • 其实对于flink而言,它是一个流处理框架,批处理只是流处理的一个极限特例而已。
    flink实时计算,大数据学习,flink,大数据,spark
  • 左边是数据源,从这里面可以看出来,这些数据是实时产生的一些日志,或者是数据库、文件系统、kv存储系统中的数据。
  • 中间是Flink,负责对数据进行处理。
  • 右边是目的地,Flink可以将计算好的数据输出到其它应用中,或者存储系统中。

(二)Flink架构

flink架构图:
flink实时计算,大数据学习,flink,大数据,spark

  • 图片最下面表示是flink的一些部署模式,支持local,和集群(standalone,yarn),也支持在云上部署。
  • 往上一层是flink的核心,分布式的流处理引擎。
  • 再往上面是flink的API和类库
    主要有两大块API,DataStram API和DataSet API,分别做流处理和批处理。
  • 针对DataStram API这块,支持复杂事件处理,和table操作,其实也是支持SQL操作的。
  • 针对DatasetAPI 这块,支持flinkML机器学习,Gelly图计算,table操作,这块也是支持SQL操作的。
  • 其实从这可以看出来,Flink也是有自己的生态圈的,里面包含了实时计算、离线计算、机器学习、图计算、Table和SQL计算等等
    所以说它和Spark还是有点像的,不过它们两个的底层计算引擎是有本质区别的

(三)Flink三大核心组件

Flink包含三大核心组件:

  1. Data Source,数据源(负责接收数据),
  2. Transformations 算子(负责对数据进行处理)
  3. Data Sink 输出组件(负责把计算好的数据输出到其它存储介质中)

(四)Flink的流出来和批处理

  1. 在大数据处理领域,批处理和流处理一般被认为是两种不同的任务,一个大数据框架一般会被设计为只能处理其中一种任务
  • 例如Storm只支持流处理任务,而MapReduce、Spark只支持批处理任务。Spark Streaming是Spark之上支持流处理任务的子系统,看似是一个特例,其实并不是——Spark Streaming采用了一种micro-batch的架构,就是把输入的数据流切分成细粒度的batch,并为每一个batch提交一个批处理的Spark任务,所以Spark Streaming本质上执行的还是批处理任务,和Storm这种流式的数据处理方式是完全不同的。
  1. Flink通过灵活的执行引擎,能够同时支持批处理和流处理
  • 在执行引擎这一层,流处理系统与批处理系统最大的不同在于节点之间的数据传输方式。
    对于一个流处理系统,其节点间数据传输的标准模型是:当一条数据被处理完成后,序列化到缓存中,然后立刻通过网络传输到下一个节点,由下一个节点继续处理,这就是典型的一条一条处理.

  • 对于一个批处理系统,其节点间数据传输的标准模型是:当一条数据被处理完成后,序列化到缓存中,
    并不会立刻通过网络传输到下一个节点,当缓存写满的时候,就持久化到本地硬盘上,当所有数据都被处
    理完成后,才开始将处理后的数据通过网络传输到下一个节点

  • 这两种数据传输模式是两个极端,对应的是流处理系统对低延迟的要求和批处理系统对高吞吐量的要求

  • Flink的执行引擎采用了一种十分灵活的方式,同时支持了这两种数据传输模型

  • Flink以固定的缓存块为单位进行网络数据传输,用户可以通过缓存块超时值指定缓存块的传输时机。如果缓存块的超时值为0,则Flink的数据传输方式类似前面所说的流处理系统的标准模型,此时系统可以获得最低的处理延迟
    如果缓存块的超时值为无限大,则Flink的数据传输方式类似前面所说的批处理系统的标准模型,此时系统可以获得最高的吞吐量。 这样就比较灵活了,其实底层还是流式计算模型,批处理只是一个极限特例而已。

(五)大数据实时计算引擎对比


接下来我们来对比一下目前大数据领域中的三种实时计算引擎
产品  Storm   SparkStreaming   Flink
模型  Native  Mirco-Batching   Native
API   组合式   声明式        声明式
语义  At-least-once Exectly-once Exectly-once
容错机制 Ack  Checkpoint     Checkpoint
状态管理 无    基于DStream    基于操作
延时   Low     Medium      Low
吞吐量 Low      High       High
  • Native:表示来一条数据处理一条数据
  • Mirco-Batch:表示划分小批,一小批一小批的处理数据
  • 组合式:表示是基础API,例如实现一个求和操作都需要写代码实现,比较麻烦,代码量会比较多。
  • 声明式:表示提供的是封装后的高阶函数,例如filter、count等函数,可以直接使用,比较方便,代码量比较少。

(六)计算框架如何选择

1:需要关注流数据是否需要进行状态管理
2:消息语义是否有特殊要求At-least-once或者Exectly-once
3:小型独立的项目,需要低延迟的场景,建议使用Storm
4:如果项目中已经使用了Spark,并且秒级别的实时处理可以满足需求,建议使用SparkStreaming
5:要求消息语义为Exectly-once,数据量较大,要求高吞吐低延迟,需要进行状态管理,建议选择Flink文章来源地址https://www.toymoban.com/news/detail-659909.html

到了这里,关于Flink实时计算框架简介的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 大数据Flink(五十):流式计算简介

    文章目录 流式计算简介 一、数据的时效性 二、流式计算和批量计算

    2024年02月15日
    浏览(45)
  • Flink CDC 3.0 正式发布,详细解读新一代实时数据集成框架

    Flink CDC 是基于数据库日志 CDC(Change Data Capture)技术的实时数据集成框架,支持了全增量一体化、无锁读取、并行读取、表结构变更自动同步、分布式架构等高级特性。配合 Flink 优秀的管道能力和丰富的上下游生态,Flink CDC 可以高效实现海量数据的实时集成。Flink CDC 社区发

    2024年02月04日
    浏览(51)
  • 【大数据-实时流计算】图文详解 Apache Flink 架构原理

    目录 Apache Flink架构介绍 一、Flink组件栈 二、Flink运行时架构 在Flink的整个

    2024年02月02日
    浏览(41)
  • 流批一体计算引擎-4-[Flink]消费kafka实时数据

    Python3.6.9 Flink 1.15.2消费Kafaka Topic PyFlink基础应用之kafka 通过PyFlink作业处理Kafka数据 PyFlink需要特定的Python版本,Python 3.6, 3.7, 3.8 or 3.9。 1.3.1 python3和pip3的配置 一、系统中安装了多个版本的python3 。 二、环境变量path作用顺序 三、安装Pyflink 1.3.2 配置Flink Kafka连接 (1)在https://mvnr

    2024年02月06日
    浏览(41)
  • Spark, Storm, Flink简介

    本文主要介绍Spark, Storm, Flink的区别。 Spark和Storm都是大数据处理框架,但它们在设计理念和使用场景上有一些区别: 实时性:Storm是一个实时计算框架,适合需要实时处理的场景;而Spark是一个批处理框架,虽然其提供的Spark Streaming模块可以进行近实时处理,但其本质上还是

    2024年04月12日
    浏览(38)
  • 数据存储和分布式计算的实际应用:如何使用Spark和Flink进行数据处理和分析

    作为一名人工智能专家,程序员和软件架构师,我经常涉及到数据处理和分析。在当前大数据和云计算的时代,分布式计算已经成为了一个重要的技术方向。Spark和Flink是当前比较流行的分布式计算框架,它们提供了强大的分布式计算和数据分析功能,为数据处理和分析提供了

    2024年02月16日
    浏览(58)
  • 大数据职业技能大赛样题(数据采集与实时计算:使用Flink处理Kafka中的数据)

           编写Scala代码,使用Flink消费Kafka中Topic为order的数据并进行相应的数据统计计算(订单信息对应表结构order_info,订单详细信息对应表结构order_detail(来源类型和来源编号这两个字段不考虑,所以在实时数据中不会出现),同时计算中使用order_info或order_detail表中create_ti

    2024年03月24日
    浏览(52)
  • OceanBase X Flink 基于原生分布式数据库构建实时计算解决方案

    摘要:本文整理自 OceanBase 架构师周跃跃,在 Flink Forward Asia 2022 实时湖仓专场的分享。本篇内容主要分为四个部分: 分布式数据库 OceanBase 关键技术解读 生态对接以及典型应用场景 OceanBase X Flink 在游戏行业实践 未来展望 点击查看原文视频 演讲PPT 作为一款历经 12 年的纯自研

    2024年02月13日
    浏览(41)
  • 基于Canal与Flink实现数据实时增量同步(一),计算机毕设源码要提交吗

    配置修改 修改conf/example/instance.properties,修改内容如下: canal.instance.mysql.slaveId = 1234 #position info,需要改成自己的数据库信息 canal.instance.master.address = kms-1.apache.com:3306 #username/password,需要改成自己的数据库信息 canal.instance.dbUsername = canal canal.instance.dbPassword = canal canal.mq.topic

    2024年04月12日
    浏览(53)
  • Flink实时电商数仓之Doris框架(七)

    大规模并行处理的分析型数据库产品。使用场景:一般先将原始数据经过清洗过滤转换后,再导入doris中使用。主要实现的功能有: 实时看板 面向企业内部分析师和管理者的报表 面向用户或者客户的高并发报表分析 即席查询 统一数仓构建:替换了原来由Spark, Hive,Kudu, Hba

    2024年02月03日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包