Flink基础知识

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
简介: Flink快速上手 --链接:百度网盘 请输入提取码 提取码:1234Flink: 分布式、高性能框架,支持实时模式和批处理模式

一、Fink知识框架


97c530241d78010ea14bd59de46334bc.png



Flink快速上手 --链接:百度网盘 请输入提取码  提取码:1234


Flink: 分布式、高性能框架,支持实时模式和批处理模式


一、Apache Flink


作为一款高吞吐量、低延迟的针对流数据和批数据的分布式实时处理引擎和Storm/Spark Streaming一样,定位于流式处理系统

区别:

– Storm:速度快,低延迟,吞吐能力低,无法保证精确一致性,必须独立集群 ,慢慢的就被抛弃了

– Spark Streaming:非实时,慢,吞吐高,依赖yarn资源利用率高 (微批处理 -》 准实时的效果)

并不能算是实时的处理引擎,也是批处理,只不过,每个批次很小,然后处理起来很快。让我们感觉有实时的效果。

– Flink:集成以上两种框架的优点,具备丰富的时间流式窗口概念

就是真正意义上的实时处理,真的会来一条数据,就处理一条数据。


二、 处理无界和有界数据


任何类型的数据都可以形成一种事件流。信用卡交易、传感器测量、机器日志、网站或移动应用程序上的用户交互记录,所有这些数据都形成一种流。

数据可以被作为 无界 或者 有界 流来处理。

无界流 有定义流的开始,但没有定义流的结束。它们会无休止地产生数据。无界流的数据必须持续处理,即数据被摄取后需要立刻处理。我们不能等到所有数据都到达再处理,因为输入是无限的,在任何时候输入都不会完成。处理无界数据通常要求以特定顺序摄取事件,例如事件发生的顺序,以便能够推断结果的完整性。

有界流 有定义流的开始,也有定义流的结束。有界流可以在摄取所有数据后再进行计算。有界流所有数据可以被排序,所以并不需要有序摄取。有界流处理通常被称为批处理

Flink的组件栈有哪些?

       根据 Flink 官网描述,Flink 是一个分层架构的系统,每一层所包含的组件都提供了特定的抽象,用来服务于上层组件。

image.png



自下而上,每一层分别代表:


       1.Deploy 层:该层主要涉及了Flink的部署模式,在上图中我们可以看出,Flink 支持包括local、Standalone、Cluster、Cloud等多种部署模式 。

       2.Runtime 层: Runtime层提供了支持 Flink 计算的核心实现,比如:支持分布式 Stream 处理、JobGraph到ExecutionGraph的映射、调度等等,为上层API层提供基础服务 。

       3.API层:API 层主要实现了面向流(Stream)处理和批(Batch)处理API,其中面向流处理对应DataStream API,面向批处理对应DataSet API,后续版本,Flink有计划将DataStream和DataSet API进行统一 。

       4. Libraries层:该层称为Flink应用框架层,根据API层的划分,在API层之上构建的满足特定应用的实现计算框架,也分别对应于面向流处理和面向批处理两类。面向流处理支持:CEP(复杂事件处理)、基于SQL-like的操作(基于Table的关系操作);面向批处理支持:FlinkML(机器学习库)、Gelly(图处理)。

Flink集群有哪些角色?各自有什么作用?

5ea00a94e0057bbaac2cfa6544322e7e.png

2d6b7fe8a420aa179e75a221018aca3d.png


    Flink 程序在运行时主要有TaskManager,JobManager,Client三种角色。


JobManager扮演着集群中的管理者Master的角色,它是整个集群的协调者,负责接收Flink Job,协调检查点,Failover 故障恢复等,同时管理Flink集群中从节点TaskManager。

TaskManager是实际负责执行计算的Worker,在其上执行Flink Job的一组Task,每个TaskManager负责管理其所在节点上的资源信息,如内存、磁盘、网络,在启动的时候将资源的状态向JobManager汇报。

Client是Flink程序提交的客户端,当用户提交一个Flink程序时,会首先创建一个Client,该Client首先会对用户提交的Flink程序进行预处理,并提交到Flink集群中处理,所以Client需要从用户提交的Flink程序配置中获取JobManager的地址,并建立到JobManager的连接,将Flink Job提交给JobManager。


相关实践学习
基于Hologres轻松玩转一站式实时仓库
本场景介绍如何利用阿里云MaxCompute、实时计算Flink和交互式分析服务Hologres开发离线、实时数据融合分析的数据大屏应用。
Linux入门到精通
本套课程是从入门开始的Linux学习课程,适合初学者阅读。由浅入深案例丰富,通俗易懂。主要涉及基础的系统操作以及工作中常用的各种服务软件的应用、部署和优化。即使是零基础的学员,只要能够坚持把所有章节都学完,也一定会受益匪浅。
目录
相关文章
|
分布式计算 Java API
Flink教程(04)- Flink入门案例
Flink教程(04)- Flink入门案例
183 0
|
8月前
|
分布式计算 监控 API
flink 入门编程day02
flink 入门编程day02
|
8月前
|
存储 消息中间件 分布式计算
flink的常见知识点总结(一)
flink的常见知识点总结(一)
|
8月前
|
SQL 分布式计算 Java
2021年最新最全Flink系列教程__Flink综合案例(九)
2021年最新最全Flink系列教程__Flink综合案例(九)
72 0
|
8月前
|
消息中间件 NoSQL 数据挖掘
2021年最新最全Flink系列教程__Flink高级特性和新特性(八)
2021年最新最全Flink系列教程__Flink高级特性和新特性(八)
54 0
|
SQL 关系型数据库 MySQL
Flink教程(19)- Flink高级特性(BroadcastState)
Flink教程(19)- Flink高级特性(BroadcastState)
120 0
|
SQL 消息中间件 自然语言处理
Flink教程(26)- Flink多语言开发
Flink教程(26)- Flink多语言开发
86 0
|
SQL 消息中间件 API
Flink教程(02)- Flink入门(上)
Flink教程(02)- Flink入门(上)
223 0
|
存储 缓存 分布式计算
Flink教程(02)- Flink入门(下)
Flink教程(02)- Flink入门(下)
127 0
|
分布式计算 Java Scala