描述一下Spark的DAG原理?

DAG(Directed Acyclic Graph)有向无环图,Spark中使用DAG对RDD的关系进行建模,描述了RDD的依赖关系,这种关系也被称之为lineage"血统",RDD的依赖关系使用Dependency维护,Dependency分为宽依赖(一个父RDD被多个子RDD分区使用,有shuffle)和窄依赖(一个父RDD只被一个子RDD分区使用),DAG在Spark中对应的实现为DAGScheduler。

用户提交的Flink Job会被转化成一个DAG任务运行。一个Flink任务的DAG生成计算图大致经历以下三个过程:

StreamGraph最接近代码所表达的逻辑层面的计算拓扑结构,按照用户代码的执行顺序向

StreamExecutionEnvironment添加StreamTransformation构成流式图。JobGraph从、StreamGraph生成,将可以串联合并的节点进行合并,设置节点之间的边,安排资源共享slot槽位和放置相关联的节点,上传任务所需的文件,设置检查点配置等。相当于经过部分初始化和优化处理的任务图。

ExecutionGraph由JobGraph转换而来,包含了任务具体执行所需的内容,是最贴近底层实现的执行图。
了解更多大数据培训相关技术内容欢迎关注小编!

posted @   Linux运维阿铭  阅读(613)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示