开发者学堂课程【大数据 Flink 实时旅游平台环境篇 2020版:环境篇之 flink 简介】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/643/detail/10707
环境篇之 flink 简介
内容介绍:
一、flink 部署
二、sandalone cluser HA 部署
一、flink 部署
flink 的部署分为以下四步:
1、 flink 的安装包解压
2、 flink 的核心文件配置
3、分发到其它服务器
4、测试flink集群
二、sandalone cluser HA 部署
Apache Flink- 数据流上的有状态计算
有状态例如之前内容中窗口的一些进入值
如下是官网对 flink 的一个简介图,可以分为三部分,左侧是数据源,中间是 flink 的分析引擎,右侧是结果存储。
在数据源中分为 Transactions 数据、日志数据、IOT 数据、Clicks 点击数据等
右侧 Real-time Events 是实时事件,针对操作等,称为事件
支持文件系统、数据库、pv 存储等
这两大类数据交给中间的 flink,flink 可以做事件驱动的应用、管道流、Stream 和Batch 的分析,这三个是 flink 的典型应用场景
下面 Resources|Storage
(K8s,Yarn,Mesos,...)|(HDFS,S3,NFS,...)
左侧是 flink 可以自己管理的资源框架,其中更多用到 Yarn 模式;右侧是数据的存储
第三部分接收管道流传入的数据,进行结果的存储
下图介绍到了一些相关内容,例如
所有流式场景:事件驱动应用、流批分析、数据管道 &ETL,可以点击了解更多在官网了解
正确性保证:Exactly-once 状态一致性、事件事件处理、成熟的迟到数据处理
分层 API:SQL on Stream & Batch Data、DataStream API & DataSet API、ProcessFunction(Time & State)
聚焦运维:灵活部署、高可用、保存点
大规模计算:水平扩展架构、支持超大状态、增量检查点机制
性能卓越:低延迟、高吞吐、内存计算
下图对 flink 的安装部署做简单介绍,首先 flink 支持 local 模式,直接解压就可以使用。
更多参与的是集群与部署:有独立集群、有 YARN、Mesos、Docker、Kubernetes、Native Kubernetes、Hadoop 集成几种模式。常见的是独立集群和 YARN,如果规模小使用独立集群就可以。
这些集群部署不是最优的,通常一个集群部署容易引起单点故障
单个 Jobmanager 容易引起 SPOF,也即是单点故障。所以通常使用高可用(HA)的部署模式,HA 具体什么样子如下图,有一个时间轴:t0时刻、t1时刻、t2时刻、t3时刻
右侧以三排服务器为讲解,第一排服务器 JobManager 是 leader,相当于在激活状态下,二和三是 Standby,相当于处在待命状态。即三个服务器都是一样角色,但是Leader 能够提供服务,Standby 提供实时的同步状态,当 leader 不能使用时,剩下的两个 Standby 中会选出一个 leader
t1时刻,1显示 CRASH,然后在2和3中选出一个 Leader,可以看到在 t2 时刻,leader 选举出来,1显示正在恢复 Recovering。之后在 t3 时刻,1显示成为Standby。
可以将 t0、t1、t2、t3 时刻之间的间隙缩小,无限缩小就会使我们感觉不到切换,该服务仍然是可用的。