您当前的位置:首页 > 电脑百科 > 程序开发 > 框架

漫谈Flink

时间:2020-08-31 10:22:20  来源:  作者:

Flink是什么?

Flink是一个框架,是一个用于有限(bounded)或者无限(unbounded)数据流上进行有状态计算的分布式处理引擎。

处理框架

漫谈Flink

Flink的软件栈如图一所示,其核心是distributed dataflow engine用于执行数据流处理程序。Flink运行时程序是一个通过有状态的算子连接的数据流的有向无环图(DAG),对上提供有限数据流的DataSet API和无限数据流的DataStream API。

漫谈Flink

如图二所示,Flink集群包含三类角色,client、JobManager和TaskManager。client将数据处理程序转换为DAG图并提交到JobManager。JobManager协调程序的执行,并跟踪每一个算子的状态以实现故障恢复。TaskManager从JobManager处接收需要部署的Task,负责具体数据处理程序的执行,一个TaskManager执行一个或者多个算子处理数据流,并将状态上报至JobManager。

这里的算子就是一个独立数据处理程序,常用的有map、flatmap、keyBY、sum、Apply、reduce、window等。其中,map和flatMap的区别是map是一对一的映射,既一个输入对应一个输出。faltMap是一对多映射,一个输入对应0个或者多个输出。

通过上述论述,Flink程序的实质就是用多个算子组合在一起形成一个有向无环图,理解了这一点flink的程序就不难理解了。下面有个简单的例子:

简单示例

漫谈Flink

Time

在Flink中定义了三种时间概念,分别是Event Time,Ingestion Time和Processing Time。

Processing Time顾名思义就是处理收到事件的系统时间,由于它不需要要数据流和处理机器间的时间协调,所以具备最低的延迟。但是,在分布式和异步的环境下,Processing Time不能提供确定性,因为它容易受到事件到达Flink系统的速度、事件在Flink系统内操作流动的速度以及中断的影响。

Event Time是事件发生时间,一般指的是数据本身携带的时间戳。Event Time 程序必须指定如何生成 Event Time 水印,这是表示 Event Time 进度的机制。理想的情况是,无论事件什么时候到达或者其怎么排序,最后处理Event Time将产生完全一致和确定的结果。但是,实际上除非事件按照已知顺序(按照事件的时间)到达,否则处理 Event Time 时将会因为要等待一些无序事件而产生延迟。由于Flink程序只能等待一段有限的时间,因此就难以保证处理Event Time将产生完全一致和确定的结果。

Ingestion Time是事件进入flink系统的时间。Ingestion Time 程序无法处理任何无序事件或延迟数据,但程序不必指定如何生成水印。在 Flink 中,Ingestion Time 与 Event Time 非常相似,但 Ingestion Time 具有自动分配时间戳和自动生成水印功能。

三个时间之间的关系通过一张图可以形象的显示出来:

漫谈Flink

参考

Apache Flink: Stream and Batch Processing in a Single Engine

https://ci.apache.org/projects/flink/flink-docs-stable/dev/event_time.html

https://segmentfault.com/a/1190000017874211



Tags:Flink   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
导读:本文我们将重点介绍集群运行时中ResourceManager的设计和实现,了解如何通过ResourceManager对集群的计算资源进行有效管理。作者:张利兵来源:华章科技 01 ResourceManager...【详细内容】
2021-08-23  Tags: Flink  点击:(79)  评论:(0)  加入收藏
简介: 新的接入方案在接入成本、接入延迟上都有了较为明显的优化效果,减轻了对统一调度系统的负载压力,并具备了端到端的业务对账能力。在公司开源协同的大背景下,TDBank的hive...【详细内容】
2020-11-18  Tags: Flink  点击:(107)  评论:(0)  加入收藏
1、场景描述例如订单库进行了分库分表,其实例如下图所示: 现在的需求是希望创建一个任务就将数据同步到MQ集群,而不是为每一个数据库实例单独创建一个任务,将其数据导入到MQ集...【详细内容】
2020-11-16  Tags: Flink  点击:(309)  评论:(0)  加入收藏
目前在唯品会实时平台并不是一个统一的计算框架,而是包括Storm,Spark,Flink在内的三个主要计算框架,这是由于历史原因形成。实时平台的职责主要包括实时计算平台和实时基础数据...【详细内容】
2020-10-13  Tags: Flink  点击:(124)  评论:(0)  加入收藏
Flink是什么?Flink是一个框架,是一个用于有限(bounded)或者无限(unbounded)数据流上进行有状态计算的分布式处理引擎。处理框架Flink的软件栈如图一所示,其核心是distributed dataf...【详细内容】
2020-08-31  Tags: Flink  点击:(110)  评论:(0)  加入收藏
如何学习Flink?对于一门计算机技术来说,如何快速学习上手呢?具体的逻辑是什么呢?我认为有以下几条 了解技术的应用场景 技术的基本概念,如何使用,以及如何部署(针对大数据组件而...【详细内容】
2020-08-15  Tags: Flink  点击:(83)  评论:(0)  加入收藏
本文主要从以下几个方面介绍Flink的流处理API——Source一、从集合中读取数据二、从文件中读取数据三、从Kafka中读取数据四、自定义Source数据处理的过程基本可...【详细内容】
2020-08-11  Tags: Flink  点击:(74)  评论:(0)  加入收藏
实时数仓建设目的解决传统数仓的问题实时数仓是一个很容易让人产生混淆的概念。实时数仓本身似乎和把 PPT 黑色的背景变得更白一样,从传统的经验来讲,我们认为数仓有一个很重...【详细内容】
2020-08-03  Tags: Flink  点击:(24)  评论:(0)  加入收藏
1. 目标在本教程中,我们将讨论Apache Spark和Apache Flink之间的比较。Apache spark和Apache Flink都是用于大规模批处理和流处理的开源平台,为分布式计算提供容错和数据分布...【详细内容】
2020-07-31  Tags: Flink  点击:(107)  评论:(0)  加入收藏
导读:Apache Flink 是一个分布式大数据处理引擎,可对有限数据流和无限数据流进行有状态计算。可部署在各种集群环境,对各种大小的数据规模进行快速计算。滴滴基于 Apac...【详细内容】
2020-05-04  Tags: Flink  点击:(84)  评论:(0)  加入收藏
▌简易百科推荐
近日只是为了想尽办法为 Flask 实现 Swagger UI 文档功能,基本上要让 Flask 配合 Flasgger, 所以写了篇 Flask 应用集成 Swagger UI 。然而不断的 Google 过程中偶然间发现了...【详细内容】
2021-12-23  Python阿杰    Tags:FastAPI   点击:(6)  评论:(0)  加入收藏
文章目录1、Quartz1.1 引入依赖<dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>2.3.2</version></dependency>...【详细内容】
2021-12-22  java老人头    Tags:框架   点击:(11)  评论:(0)  加入收藏
今天来梳理下 Spring 的整体脉络啦,为后面的文章做个铺垫~后面几篇文章应该会讲讲这些内容啦 Spring AOP 插件 (了好久都忘了 ) 分享下 4ye 在项目中利用 AOP + MybatisPlus 对...【详细内容】
2021-12-07  Java4ye    Tags:Spring   点击:(14)  评论:(0)  加入收藏
&emsp;前面通过入门案例介绍,我们发现在SpringSecurity中如果我们没有使用自定义的登录界面,那么SpringSecurity会给我们提供一个系统登录界面。但真实项目中我们一般都会使用...【详细内容】
2021-12-06  波哥带你学Java    Tags:SpringSecurity   点击:(18)  评论:(0)  加入收藏
React 简介 React 基本使用<div id="test"></div><script type="text/javascript" src="../js/react.development.js"></script><script type="text/javascript" src="../js...【详细内容】
2021-11-30  清闲的帆船先生    Tags:框架   点击:(19)  评论:(0)  加入收藏
流水线(Pipeline)是把一个重复的过程分解为若干个子过程,使每个子过程与其他子过程并行进行的技术。本文主要介绍了诞生于云原生时代的流水线框架 Argo。 什么是流水线?在计算机...【详细内容】
2021-11-30  叼着猫的鱼    Tags:框架   点击:(21)  评论:(0)  加入收藏
TKinterThinter 是标准的python包,你可以在linx,macos,windows上使用它,你不需要安装它,因为它是python自带的扩展包。 它采用TCL的控制接口,你可以非常方便地写出图形界面,如...【详细内容】
2021-11-30    梦回故里归来  Tags:框架   点击:(26)  评论:(0)  加入收藏
前言项目中的配置文件会有密码的存在,例如数据库的密码、邮箱的密码、FTP的密码等。配置的密码以明文的方式暴露,并不是一种安全的方式,特别是大型项目的生产环境中,因为配置文...【详细内容】
2021-11-17  充满元气的java爱好者  博客园  Tags:SpringBoot   点击:(25)  评论:(0)  加入收藏
一、搭建环境1、创建数据库表和表结构create table account(id INT identity(1,1) primary key,name varchar(20),[money] DECIMAL2、创建maven的工程SSM,在pom.xml文件引入...【详细内容】
2021-11-11  AT小白在线中  搜狐号  Tags:开发框架   点击:(29)  评论:(0)  加入收藏
SpringBoot开发的物联网通信平台系统项目功能模块 功能 说明 MQTT 1.SSL支持 2.集群化部署时暂不支持retain&will类型消 UDP ...【详细内容】
2021-11-05  小程序建站    Tags:SpringBoot   点击:(55)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条