80后大数据专家,一文带你读懂Flink批处理生成执行计划,学吗?

前言

我们这里所说的优化执行计划,是指从生成Plan之后,一直到生成JobGraph之前这一期间对Plan进行各种转换、增强、优化处理。从用户编程的Flink批处理程序开始,一直到生成JobGraph的整个过程,这个过程中,会创建很多数据结构来完成执行计划的优化工作,而且,通过分层增强与优化的方式,有利于我们对每层进行了哪些处理有一个很好地理解。我们从整理流程上来看,都有哪些核心的处理,然后会对每一步进行概要说明,从宏观上理解每一步都做了哪些操作。批处理执行计划生成及优化的主要流程,如下图所示:

80后大数据专家,一文带你读懂Flink批处理生成执行计划,学吗?

根据上图,我们将Flink批处理执行计划生成的流程,分为如下几个阶段进行说明。

80后大数据专家,一文带你读懂Flink批处理生成执行计划,学吗?

  • 构建用户编程Operator DAG

把用户程序中设置的各种DataSource、Transformation、DataSink及其配置信息进行收集,以最原始的形态保存在ExecutionEnvironment上线文环境对象中,当然也跟踪了从DataSource到DataSink之间的操作顺序,最后通过ExecutionEnvironment对象,基于DataSink就可以从后向前遍历,直接链接到DataSource。在上面的处理过程中,涉及到3个比较重要的内容:一是用户根据Flink定义的各种Transformation接口实现并传入的处理函数,也包括Flink为了完成处理内部直接创建的函数对象;二是创建位于
org.apache.flink.api.java.operators包下面的Operator具体实现类对象;三是根据用户编写的程序配置,比如并行度、Broadcast变量等等,收集这些配置并设置到对应的Operator对象上。

  • 生成通用Operator DAG

根据ExecutionEnvironment中收集的信息,生成程序Plan。Flink批处理在生成程序Plan的过程中,比较容易理解,就是把原生的Operator(与
org.apache.flink.api.java.operators包下面的具体实现相对应),转换成语义更加丰富的Operator(与org.apache.flink.api.common.operators包下面的具体实现相对应),也就是通过调用

如果你觉得自己学习效率低,缺乏正确的指导,可以加入资源丰富,学习氛围浓厚的技术圈一起学习交流吧!
[Java架构群]
群内有许多来自一线的技术大牛,也有在小厂或外包公司奋斗的码农,我们致力打造一个平等,高质量的JAVA交流圈子,不一定能短期就让每个人的技术突飞猛进,但从长远来说,眼光,格局,长远发展的方向才是最重要的。

org.apache.flink.api.java.op

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

图灵课堂诸葛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值