——wirte by 橙心橙意橙续缘,
前言
白话系列
————————————————————————————
也就是我在写作时完全不考虑写作方面的约束,完全把自己学到的东西、以及理由和所思考的东西等等都用大白话诉说出来,这样能够让信息最大化的从自己脑子里输出并且输入到有需要的同学的脑中。PS:较为专业的地方还是会用专业口语诉说,大家放心!
白话Flink系列
————————————————————————————
主要是记录本人(国内某985研究生)在Flink基础理论阶段学习的一些所学,更重要的是一些所思所想,所参考的视频资料或者博客以及文献资料均在文末放出.由于研究生期间的课题组和研究方向与Flink接轨较多,而且Flink的学习对于想进入大厂的同学们来说也是非常的赞,所以该系列文章会随着本人学习的深入来不断修改和完善,希望大家也可以多批评指正或者提出宝贵建议。
说在前面
————————————————————
在Runtime架构的前两节,我们已经简单地对Runtime层的架构、组件以及其中涉及到的任务调度和资源管理部分进行了学习,但是我们在其中涉及到一些过程确一直一知半解,比如
- JobManager要将每个Task调度到TaskManager的Slot上进行执行,那么每个Slot里执行的是什么呢?
- 1个Job的Task是怎么划分的呢?我们又听过SubTask这又是什么呢?
- Flink作为一个分布式系统,它的并行性是如何体现的呢?
我们学完Runtime这一块的前两节,虽然对Rntime层的大致思想有了了解,但是却又不清楚的3个很重要的问题,这3个问题基本就能把Runtime层最底层的任务调度和资源管理给解释地明明白白,理解了本节内容,对Runtime层的理解才算真正是拨开云雾见光明。
概念介绍
以下概念是Flink官方给出并且结合自身理解给出的,比较全面。
算子operator:逻辑图Logical Graph(也即数据流图Dataflow Graph)的节点。运算符执行特定操作,该操作通常由函数执行。Source和Sink是用于数据引入和数据出口的特殊运算符。包括以下两种模式。one-to-one(forwarding): 即两种算子间所产生的的元素的个数和顺序皆相同,不涉及数据重分区,比如map flatMap fliter等算子Redistributing:(1)算子的操作会引起数据的重分区,或者(2)人为在算子执行完后进行重分区。KeyBy:该算子会产生基于hashCode的重分区- 重分区操作。
broadcast:广播rebalance:轮询,也就是上游算子所产生的数据会依次发送给下游算子shuffle:彻底的随机打乱重分区

最低0.47元/天 解锁文章
870

被折叠的 条评论
为什么被折叠?



