【博学谷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集群
-