Flink入门html
Apache Flink 是一个面向分布式数据流处理和批量数据处理的开源计算平台,提供支持流处理和批处理两种类型应用的功能。git
Flink 特色github
现有的开源计算方案,会把流处理和批处理做为两种不一样的应用类型:流处理通常须要支持低延迟、Exactly-once保证,而批处理须要支持高吞吐、高效处理apache
Flink组件栈网络
Deployment层架构
主要涉及了Flink的部署模式、Flink支持多种部署模式:本地、集群(Standalone/YARN)、云(GCE/EC2).框架
Runtime层分布式
Runtime层提供了支持Flink计算的所有核心实现,好比:支持分布式Stream处理、JobGraph到ExecutionGraph的映射、调度等等,为上层API层提供基础服务ide
API层性能
API层主要实现了面向***Stream的流处理和面向Batch的批处理API,其中面向流处理对应DataStream API,面向批处理对应DataSet API
Libaries层
在API层之上构建的知足特定应用的实现计算框架,也分别对应于面向流处理和面向批处理两类。
Flink优点
支持高吞吐、低延迟、高性能的流处理
支持高度灵活的窗口(Window)操做
支持有状态计算的Exactly-once语义
Flink数据流和时间窗口
基本概念
Flink程序的基础构建模块是流(streams)与转换(transformations)。
时间窗口
流上的聚合须要由窗口来划定范围,好比 “计算过去的5分钟” 或者 “最后100个元素的和”
Flink分布式运行环境
Flink是基于Master-Slave风格的架构
JobManager
Flink系统的协调者,他负责接受Flink Job ,调度组成Job的多个Task的执行
TaskManager
实际负责执行计算的Worder,在其上执行Flink Job的一组Task
Client
用户提交一个Flink程序时,会首先建立一个Client,该Client首先会对用户提交的Flink程序进行预处理,并提交到Flink集群
Flink安装
方式一
git clone https://github.com/apache/flink.git
cd flink
mav clean package -DskipTests
方式二
到官网下载编译版:https://flink.apache.org/downloads.html
不一样环境下到bin目录,运行start-local.bat
运行正常,访问页面:http://localhost:8081
▼