Flink简介
概述
Flink是一款真正意义上的流式处理框架。
历史
2008年诞生于柏林,原名叫Stratosphere项目
2014年中旬被捐赠给了Apache,改名为Flink
2014年底从Apache孵化成功,成为了顶级项目
2019年1月份Flink的母公司被阿里巴巴收购,从此Flink属于阿里的了
2023年3月23日,Flink推出了1.17.0的版本
咋们课程中版本为去年中旬推出的版本1.15.2
特点
-
支持高吞吐、低延迟、高性能的流处理
-
支持带有事件时间的**窗口(Window)**操作
-
支持有状态计算的Exactly-once语义
-
支持高度灵活的窗口(Window)操作,支持基于time、count、session,以及data-driven的窗口操作
-
支持具有Backpressure功能的持续流模型
-
支持基于轻量级**分布式快照(Snapshot)**实现的容错
-
一个运行时同时支持Batch on Streaming处理和Streaming处理
-
Flink在JVM内部实现了自己的内存管理
Flink:基于数据流上有状态的计算。
数据流:流动的数据。
有状态:Flink会帮用户报错计算的中间结果
应用场景
阿里提供的场景如下:
Flink架构
在大数据领域中,框架的架构大部分都是主从架构。
- HDFS
主:namenode
从:datanode
- Yarn
主:ResourceManager
从:NodeManager
- Spark
主:master
从:worker
- Flink
主:JobManager
从:TaskManager
如下图:
槽,也叫插槽,slot,任务是在slot里运行的。
slot是集群的静态资源。slot的数量理论上是可以任意设置的。
如果一个从节点设置了多个slot,那么多个slot会均分该节点的资源。
slot一旦确定好后,就无法更改了。如果需要更改的话,则需要重启Flink集群。
小结:
目前我们只需要了解Flink是一个主从架构,任务是在从节点的Slot里运行即可。
Flink安装部署
Flink可以有多种部署方式。比如:
- Local(本地模式,一个进程模拟主、从)
- Standalone(独立模式)
- Yarn(yarn模式)
Standalone
下载、安装、配置
#1.基础路径
cd ~
#2.下载
wget https://archive.apache.org/dist/flink/flink-1.15.2/flink-1.15.2-bin-scala_2.12.tgz
#3.解压
tar -xf flink-1.15.2-bin-scala_2.12.tgz -C /export/server
#4.配置软连接
ln -s flink-1.15.2 flink
#5.进入Flink的安装目录
cd flink
接下来是配置Flink。需要编辑conf/flink-conf.yaml
文件。
命令如下:
#0.编辑配置文件
vim conf/flink-conf.yaml
#1.需要修改的地方
190 rest.address: node1
203 rest.bind-address: node1
#2.建议修改的地方,严格来说可以不改,但是建议修改
91 taskmanager.numberOfTaskSlots: 4
#3.建议添加的参数,如果不添加,那么Flink集群在停止时会抛出异常,不太好看。
309 classloader.check-leaked-classloader: false
保存,启动集群。
bin/start-cluster.sh
web访问:
node1:8081
截图如下:
能看到这个页面,表示Flink安装部署成功。