-
Apache Flink 是一个面向分布式数据流处理和批量数据处理的开源计算平台,提供支持流处理和批处理两种类型应用的功能。
- Apache Flink的前身是柏林理工大学一个研究性项目,在2014被Apache孵化器所接受,然后迅速地成为了Apache Software Foundation的顶级项目之一。
Flink 特点
-
现有的开源计算方案,会把流处理和批处理作为两种不同的应用类型:流处理一般需要支持低延迟、Exactly-once保证,而批处理需要支持高吞吐、高效处理
- Flink是完全支持流处理,也就是说作为流处理看待时输入数据流时***的;批处理被作为一种特殊的流处理,只是它的输入数据流被定义为有界的。
Flink组件栈
主要涉及了Flink的部署模式、Flink支持多种部署模式:本地、集群(Standalone/YARN)、云(GCE/EC2).
Runtime层
Runtime层提供了支持Flink计算的全部核心实现,比如:支持分布式Stream处理、JobGraph到ExecutionGraph的映射、调度等等,为上层API层提供基础服务
API层
API层主要实现了面向***Stream的流处理和面向Batch的批处理API,其中面向流处理对应DataStream API,面向批处理对应DataSet API
Libaries层
在API层之上构建的满足特定应用的实现计算框架,也分别对应于面向流处理和面向批处理两类。
基本概念
时间窗口
-
流上的聚合需要由窗口来划定范围,比如 “计算过去的5分钟” 或者 “最后100个元素的和”
- 窗口通常被区分为不同的类型,比如滚动窗口(没有重叠),滑动窗口(有重叠),以及会话窗口(由布活动的间隙所打断)
JobManager
-
Flink系统的协调者,他负责接受Flink Job ,调度组成Job的多个Task的执行
- 收集Job的状态信息,并管理Flink集群中从节点TaskManager
TaskManager
-
实际负责执行计算的Worder,在其上执行Flink Job的一组Task
- TaskManager负责管理其所在节点上的资源信息,如内存、磁盘、网络,在启动的时候将资源的状态向JobManager汇报
Client
-
用户提交一个Flink程序时,会首先创建一个Client,该Client首先会对用户提交的Flink程序进行预处理,并提交到Flink集群
- Client会将用户提交的Flink程序组装一个JobGraph,并且时以JobGraph的形式提交的
Flink安装
方式一
-
git clone https://github.com/apache/flink.git
-
cd flink
-
mav clean package -DskipTests
- cd build-target
方式二
到官网下载编译版:https://flink.apache.org/downloads.html
不同环境下到bin目录,运行start-local.bat
运行正常,访问页面:http://localhost:8081
▼
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。