当前位置:网站首页>11.1.1、flink概述_flink概述
11.1.1、flink概述_flink概述
2022-06-25 22:12:00 【Loves_dccBigData】
1、流处理和批处理

2、有界流和无界流
有界流:数据量是有限的,eg:mysql等
无界流:数据是没有界限的,一般kafka里数据
3、flink概述,特点
(1)flink是一个分布式的数据处理引擎
(2)支持高吞吐、低延迟、高性能的流处理
(3)支持带有事件时间的窗口(Window)
(4)操作
支持有状态计算的Exactly-once语义
(5)支持高度灵活的窗口(Window)操作,支持基于time、count、session,以及data-driven的窗口操作
(6)支持具有反压功能的持续流模型
(7)支持基于轻量级分布式快照(Snapshot)实现的容错
(8)一个运行时同时支持Batch on Streaming处理和Streaming处理
(9)Flink在JVM内部实现了自己的内存管理,避免了出现oom
(10)支持迭代计算
(11)支持程序自动优化:避免特定情况下Shuffle、排序等昂贵操作,中间结果有必要进行缓存
4、部署环境
(1)本地模式local
(2)cluster集群模式(standalone,yarn)
(3)云模式cloud
5、flink的持续流执行流程(重要)
KeyBy:将相同的key分到同一个Task中
—默认为hash分区
—flink和spark都是粗粒度的资源调度
—称为上游和下游,不叫map,reduce
—flink是一次调度
—一般都是有状态的算子

spark的shuffle过程:
等待map端结束之后再执行reduce端
flink的shuffle过程:
flink中的所有task一起启动,等待数据过来
上游task向下游task发送数据的条件:
(1)数据达到32k(buffle缓存的大小,防止频繁发数据IO消耗)
(2)时间达到200毫秒
6、调度
spark任务调度:
(1)构建DAG有向无环图
(2)切分stage
(3)按照顺序将stage发送给taskschedule
(4)taskschedule将task发送到executor中执行
fink的任务调度
(1)构建DataFlow
(2)拆分成多个task
(3)将所有的task部署启动
(4)等待数据过来,处理数据
7、运行导包
logger为打印日志的,还需要将日志文件放在resources中才可以
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<flink.version>1.11.2</flink.version>
<scala.binary.version>2.11</scala.binary.version>
<scala.version>2.11.12</scala.version>
<log4j.version>2.12.1</log4j.version>
</properties>
<dependencies>
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-walkthrough-common_${scala.binary.version}</artifactId>
<version>${flink.version}</version>
</dependency>
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-streaming-scala_${scala.binary.version}</artifactId>
<version>${flink.version}</version>
</dependency>
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-clients_${scala.binary.version}</artifactId>
<version>${flink.version}</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>${log4j.version}</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>${log4j.version}</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>${log4j.version}</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.36</version>
</dependency>
</dependencies>
边栏推荐
- (转载)进程和线程的形象解释
- 网络协议之:redis protocol详解
- InputStream流已经关闭了,但是依旧无法delete文件或者文件夹,提示被JVM占用等
- STEP7主站与远程I/O组网_过路老熊_新浪博客
- Redis之哨兵
- Simulation connection between WinCC and STEP7_ Old bear passing by_ Sina blog
- Literature research (I): hourly energy consumption prediction of office buildings based on integrated learning and energy consumption pattern classification
- 关于二分和双指针的使用
- 用frp搭建云电脑
- One article explains R & D efficiency! Your concerns are
猜你喜欢

Efficacy of kiwi fruit enzyme_ Old bear passing by_ Sina blog
![搜索旋转数组II[抽象二分练习]](/img/db/3ea01cf1ad8446a7007891ef1d8e7f.png)
搜索旋转数组II[抽象二分练习]

DHCP review

(转载)进程和线程的形象解释

在win10下使用visual studio2015链接mysql数据库

dhcp复习

C ++ 引用与指针总结

Analyse des cinq causes profondes de l'échec du développement de produits

js实现输入开始时间和结束时间,输出其中包含多少个季,并且把对应年月打印出来

Use Baidu map API to set an overlay (infowindow) in the map to customize the window content
随机推荐
huibian
Apache Doris1.0版本集群搭建、负载均衡与参数调优
MySQL version upgrade + data migration
Backup restore of xtrabackup
Literature research (IV): Hourly building power consumption prediction based on case-based reasoning, Ann and PCA
Literature research (III): overview of data-driven building energy consumption prediction models
剑指 Offer 48. 最长不含重复字符的子字符串
猕猴桃酵素的功效_过路老熊_新浪博客
How postman tests interfaces that require login
iomanip头文件在实战中的作用
利用swiper实现轮播图
How to configure SQL Server 2008 Manager_ Old bear passing by_ Sina blog
Raspberry pie sends hotspot for remote login
ssh的复习
Thrift入门学习
我的博客今天2岁167天了,我领取了先锋博主徽章_过路老熊_新浪博客
如何配置SQL Server 2008管理器_过路老熊_新浪博客
关于运行scrapy项目时提示 ModuleNotFoundError: No module named 'pymongo‘的解决方案
用ES5的方式实现const
Line height for small use