DataX教程(07)- 图解DataX任务分配及执行流程

简介: DataX教程(07)- 图解DataX任务分配及执行流程

01 引言


通过前面的博文,我们对DataX有了一定的深入了解了:


  • 《DataX教程(01)- 入门》
  • 《DataX教程(02)- IDEA运行DataX完整流程(填完所有的坑)》
  • 《DataX教程(03)- 源码解读(超详细版)
  • 《DataX教程(04)- 配置完整解读》
  • 《DataX教程(05)- DataX Web项目实践》
  • 《DataX教程(06)- DataX调优》


本文主要讲解的是DataX的任务分配以及执行的流程。


02 图解任务分配及执行流程


首先贴上自己整理的一张图:

0d9c86733379481aac58bff25a55ceff.png


主要就是用到了几个类:


  • JobContainer:任务容器
  • Reader:读插件接口
  • Writer:写插件接口
  • JobAssignUtil:任务分配工具类
  • AbstractScheduler:任务调度抽象类
  • TaskGroupContainer:任务组容器


流程简要描述:


  1. 首先在job.json读取job.setting.speed里的配置,有byte、record、channel;
  2. JobContainer会先根据第一步的3个参数算出总通道数;
  3. JobContainer会调用不同的读写插件的split方法来为所有通道分分配任务配置;
  4. 分配好后,JobContainer合并任务配置,使用JobAssignUtil工具类来对所有通道的所有配置进行分组;
  5. 分组后,每个组的每个通道都有分配好的配置了,这个时候使用AbstractScheduler来调度任务;
  6. AbstractScheduler里面有个TaskExcutor内部类,主要用来执行读写线程;
  7. 读写线程里面会调用Reader和Writer插件里面的具体业务方法(init()、prepare()、startWriter()、post())。


具体的详细描述,只要点大流程图就一目了然了。


03 文末


通过前面几篇博客的学习,基本把DataX读了一遍了,如有疑问,欢迎各位同学提出,


本文完!


目录
相关文章
|
2月前
|
Java 流计算
【极数系列】Flink搭建入门项目Demo & 秒懂Flink开发运行原理(05)
【极数系列】Flink搭建入门项目Demo & 秒懂Flink开发运行原理(05)
|
5月前
|
Java 关系型数据库 MySQL
DataX教程(10)- DataX插件热插拔原理
DataX教程(10)- DataX插件热插拔原理
191 0
|
缓存 资源调度 分布式计算
Apache Flink 进阶(六):Flink 作业执行深度解析
主要分享内容为 Flink Job 执行作业的流程,文章将从两个方面进行分享:一是如何从 Program 到物理执行计划,二是生成物理执行计划后该如何调度和执行。
Apache Flink 进阶(六):Flink 作业执行深度解析
|
4月前
|
存储 算法 Java
读Flink源码谈设计:Exactly Once
将Flink应用至生产已有一段时间,刚上生产的时候有幸排查过因数据倾斜引起的Checkpoint超时问题——当时简单的了解了相关机制,最近正好在读Flink源码,不如趁这个机会搞清楚。 在这里,我们首先要搞清楚两种Exactly-Once的区别: - Exactly Once:在计算引擎内部,数据不丢失不重复。本质是通过Flink开启检查点进行Barrier对齐,即可做到。 - End to End Exactly Once:这意味着从数据读取、引擎处理到写入外部存储的整个过程中,数据都是不丢失不重复的。这要求数据源可重放,写入端支持事务的恢复和回滚或幂等。
532 0
|
5月前
|
调度 DataX 容器
DataX教程(07)- 图解DataX任务分配及执行流程
DataX教程(07)- 图解DataX任务分配及执行流程
233 0
DataX教程(07)- 图解DataX任务分配及执行流程
|
5月前
|
资源调度 Java 调度
Flink教程(05)- Flink原理简单分析
Flink教程(05)- Flink原理简单分析
65 0
|
5月前
|
数据采集 分布式计算 调度
DataX教程(03)- 源码解读(超详细版)
DataX教程(03)- 源码解读(超详细版)
403 0
|
5月前
|
监控 DataX
DataX教程(09)- DataX是如何做到限速的?
DataX教程(09)- DataX是如何做到限速的?
147 0
|
8月前
|
资源调度 Kubernetes Java
10分钟入门Flink--架构和原理
相信你读完上一节的[《10分钟入门Flink--了解Flink》](https://mp.weixin.qq.com/s?__biz=MzI3OTA2MDQyOQ==&mid=2247483800&idx=1&sn=bcba92c8bc5081ec481f0ec01926ce26&chksm=eb4ccb3adc3b422cbae3bc577525f8611bcbb76b5ac4e5d395d5ee85f26897e27846b68bc4b8&token=2145213332&lang=zh_CN#rd)对Flink已经有初步了解了。这是继第一节之后的Flink入门系列的第二篇,本篇主要内容是
10分钟入门Flink--架构和原理
|
8月前
|
分布式计算 资源调度 Hadoop
Hadoop基础学习---5、MapReduce概述和WordCount实操(本地运行和集群运行)、Hadoop序列化
Hadoop基础学习---5、MapReduce概述和WordCount实操(本地运行和集群运行)、Hadoop序列化