美文网首页
第1~4章 Flink简介

第1~4章 Flink简介

作者: 井底蛙蛙呱呱呱 | 来源:发表于2022-11-22 00:09 被阅读0次

Flink是一个框架和分布式流处理引擎,用于对无界和有界数据流进行有状态计算。

Flink的主要应用场景包括:

  • 电商和市场营销。如实时数据报表、广告投放、实时推荐等;
  • 物联网。如传感器实时数据采集和显示、实时报价,交通运输业等;
  • 物流配送和服务业。如订单状态实时更新,通知信息推送等;
  • 银行和金融业。实时结算和通知推送,实时监测异常行为;

流处理与批处理。spark是典型的批处理,即便是spark streaming,streaming也只是更小的batch。

Lambda架构

Lambda 架构主体是传统批处理架构的增强。它的“批处理层”(Batch Layer)就是由传统的批处理器和存储组成,而“实时层”(Speed Layer)则由低延迟的流处理器实现。数据到达之后,两层处理双管齐下,一方面由流处理器进行实时处理,另一方面写入批处理存储空间,
等待批处理器批量计算。流处理器快速计算出一个近似结果,并将它们写入“流处理表”中。而批处理器会定期处理存储中的数据,将准确的结果写入批处理表,并从流处理表中删除不准确的结果。最终,应用程序会合并流处理表和批处理表中的结果,并展示出来。

Lambda 架构的优点非常明显,它兼具了批处理器和第一代流处理器的特点,同时保证了低延迟和结果的准确性。而它的缺点同样非常明显。首先,Lambda 架构本身就很难建立和维护;而且,它需要我们对一个应用程序,做出两套语义上等效的逻辑实现,因为批处理和流处理是两套完全独立的系统,它们的 API 也完全不同。为了实现一个应用,付出了双倍的工作量,这对程序员显然不够友好。

新一代流处理器:Flink。流批一体。

Flink 的核心特性:

  • 高吞吐和低延迟。每秒处理数百万个事件,毫秒级延迟。
  • 结果的准确性。Flink 提供了事件时间(event-time)和处理时间(processing-time)语义。对于乱序事件流,事件时间语义仍然能提供一致且准确的结果。
  • 精确一次(exactly-once)的状态一致性保证。
  • 可以连接到最常用的存储系统,如 Apache Kafka、Apache Cassandra、Elasticsearch、JDBC、Kinesis 和(分布式)文件系统,如 HDFS 和 S3。
  • 高可用。本身高可用的设置,加上与 K8s,YARN 和 Mesos 的紧密集成,再加上从故障中快速恢复和动态扩展任务的能力,Flink 能做到以极少的停机时间实现 7×24 全天候运行。
  • 能够更新应用程序代码并将作业(jobs)迁移到不同的 Flink 集群,而不会丢失应用程序的状态。

Flink分层API:


Flink运行时架构

Flink 的运行时架构中,最重要的就是两大组件:作业管理器(JobManger)和任务管理器(TaskManager)。对于一个提交执行的作业,JobManager 是真正意义上的“管理者”(Master),负责管理调度,所以在不考虑高可用的情况下只能有一个;而 TaskManager 是“工作者”(Worker、Slave),负责执行任务处理数据,所以可以有一个或多个。Flink 的作业提交和任务处理时的系统如图 4-1 所示。


作业提交流程

如上图,具体步骤如下:
(1)一般情况下,由客户端(App)通过分发器提供的REST接口,将作业提交给JobManager;
(2)由分发器启动 JobMaster,并将作业(包含 JobGraph)提交给JobMaster;
(3)JobMaster 将 JobGraph 解析为可执行的 ExecutionGraph,得到所需的资源数量,然后向资源管理器请求任务槽资源(slots);
(4)资源管理器判断当前是否由足够的可用资源;如果没有,启动新的 TaskManager;
(5)TaskManager 启动之后,向 ResourceManager 注册自己的可用任务槽(slots);
(6)资源管理器通知 TaskManager 为新的作业提供 slots;
(7)TaskManager 连接到对应的 JobMaster,提供 slots;
(8)JobMaster 将需要执行的任务分发给 TaskManager;
(9)TaskManager 执行任务,互相之间可以交换数据。

相关文章

  • Flink的API操作

    1、Flink简介 官网[https://flink.apache.org/zh/] Apache Flink® ...

  • Flink(1)简介

    简介 官网[https://flink.apache.org/zh/],Flink 是分布式大数据处理引擎,可对有...

  • 第1~4章 Flink简介

    Flink是一个框架和分布式流处理引擎,用于对无界和有界数据流进行有状态计算。 Flink的主要应用场景包括: 电...

  • FLINK实战-使用CEP进行网站状态监控报警和报警恢复

    flink CEP 简介 flink CEP(Complex event processing),是在Flink之...

  • Flink 1.11 与 Hive 批流一体数仓实践

    简介:Flink 从 1.9.0 开始提供与 Hive 集成的功能,随着几个版本的迭代,在最新的 Flink 1....

  • flink简介

    Flink简介 其结构图如下: Flink架构 Flink的分布式执行主要分成两个重要进程:master和work...

  • Flink简介

    Flink是一个分布式处理引擎,对无界数据流和有界数据流进行计算。 流数据(双十一)传统数据架构是基于有限数据集的...

  • Flink简介

    1.初识Flink Flink起源于Stratosphere项目,Stratosphere是在2010~2014年...

  • Flink简介

    Flink是什么? flink Apache的一个顶级开源项目,同时它是一个 可以处理有界和无界数据流 的...

  • Flink简介

    一、Flink概述Apache Flink是一个框架和分布式处理引擎,用于对无界和有界数据流进行有状态计算。Fli...

网友评论

      本文标题:第1~4章 Flink简介

      本文链接:https://www.haomeiwen.com/subject/xmcoxdtx.html