【博学谷学习记录】超强总结,用心分享 | 初识Flink
【博学谷IT技术支持】
介绍
Flink是由Apache软件基金会开发的开源流处理矿建,其核心是用JAVA和Scala编写的分布式流数据引擎。Flink以数据并行和流水线方式执行任意流数据程序,Flink的流水线运行时系统可以执行批处理和流处理程序,Flink的运行本身也支持迭代算法的执行。
Flink可以做什么
- 实时智能推荐
- 复杂事件处理
- 实时诈骗检测
- 实时数仓与ETL
- 流数据分析
Flink的优势是什么
- 支持高吞吐、低延迟、高性能的流处理
- 支持带有事件事件的窗口操作
- 支持有状态计算的Exactly-once语义
- 支持高灵活度的窗口事件,支持基于time、count、session,以及data-driven的窗口操作
- 支持具有BackPressure功能的持续流模型
- 支持基于轻量分布式快照(Snapshot)实现的容错
- 一个运行时同时支持Batch on Streaming处理和Streaming处理
- Flink在jvm内部实现了自己的内存管理
Flink的架构
主从架构:
主: JobManager
从: TaskManager
JobManager
- 负责集群管理
- 管理集群总资源
- 分配任务给从节点执行
- 和从节点通信
- 做checkpoint,实现程序容错
TaskManager
-
负责任务执行
-
负责该节点资源管理
-
和主节点通信
-
Slot: 任务在Slot里运行
slot是集群的静态资源。slot的数量理论上是可以任意设置的 如果一个从节点设置了多个Solt,那么多个Slot会均分该节点的资源 Slot一旦确定后无法修改,需要修改需要重启Flink集群
常用的部署方式
-
-
Local (本地模式,一个进程模拟主、从)
-
Standalone(独立模式)
-
Yarn (yarn 模式)
Standalone
1.下载文件到/export/software目录
wget https://archive.apache.org/dist/flink/flink-1.15.2/flink-1.15.2-bin-scala_2.12.tgz
2.解压
tar -xf flink-1.15.2-bin-scala_2.12.tgz -C /export/server
3. 配置软连接
ln -s flink-1.15.2 flink
4. 进入Flink的安装目录
cd flink