1.学习背景
目前工作上已在使用flink进行实时计算,业务开发没有什么问题,但是对于整个框架的认识程度来说,还是过于浅显,需要深入,构建知识体系。
2.学习目标
1.构建完整的Flink框架的知识体系,了解其原理、架构
2.熟练使用框架进行开发
3.学习参考资料
书籍:《Flink入门与实战》 ——徐葳
注:在通读本书后,应该会写一篇相应的书评
4.我目前所理解的Flink
《自问自答》环节:
1.什么是Flink?
一个流处理框架,这是我的第一反应。
2.OK,那什么是流处理?
流处理就是指数据源连续不断且无穷尽,需要一直对数据进行处理?(听着有点别扭)
3.那为什么用Flink?Flink好在哪里?
高性能?我认为,作为实时计算框架最重要的就是要做到高性能、高吞吐
正式学习
一、Flink的架构分析
根据书上所言,Flink架构分为4层,分别是:
Deploy层、Core层、API层、Libarary层
1Deploy层
顾名思义,Deploy与部署相关,主要是关于Flink的部署模式。
那么Flink有哪些部署方式呢?
a.本地部署
b.集群部署(Standalone/YARN)
c.云服务器(GCE/EC2)
2.Core层
书上说,该层提供了支持Flink计算的全部核心实现,为API层提供基础的服务。(这里感觉过于简略了,Flink计算的核心实现是如何做到的呢?)
3.API层
流处理和批处理的API,没啥好说的
4.Libarary层
所谓的Libarary层也就是在API的基础上,进一步进行领域划分,比如复杂事件处理、表操作、批处理、Gelly图处理等
二、小结与疑问
1.首先,知道了Flink的架构分为了几个层次,4层,分别是:Deploy、Core、API与Libarary。我认为最为重要的是Deploye与Core层,也就是如何在代码层面上以不同的方式进行一个实际部署以及Core的原理实现。