DATAX的架构和运行原理

这篇具有很好参考价值的文章主要介绍了DATAX的架构和运行原理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一.概念

  DATAX呢就是把各个不同构的数据库进行同步的过程,具体有hdfs hive Oracle 等等吧。

二.架构

1.设计原理

显而易见从强连通图到星形图,大大的简化了工作量。

DATAX的架构和运行原理,架构

2.框架设计,变成了FrameWork和plugin的形式,以读者写者的方式(reader writer)进行数据的同步吧。

DATAX的架构和运行原理,架构

DataX在设计之初就将同步理念抽象成框架+插件的形式.框架负责内部的序列化传输,缓冲,并发,转换等而核心技术问题,数据的采集(Reader)和落地(Writer)完全交给插件执行。

  • Read 数据采集模块,负责采集数据源的数据,将数据发送至FrameWork。
  • Writer 数据写入模块,负责不断的向FrameWork取数据,并将数据写入目的端。
  • FrameWork 用于连接reader和write,作为两者的数据传输通道,处理缓冲,流控,并发,转换等核心技术问题。

4.运行原理

DATAX的架构和运行原理,架构文章来源地址https://www.toymoban.com/news/detail-817276.html

  • Job 完成单个数据同步的作业称之为job。DataX接受到一个Job之后,将启动一个进程来完成整个作业同步过程。负责数据清理,子任务划分,TaskGroup监控管理。
  • Task 由Job切分而来,是DataX作业的最小单元,每个Task负责一部分数据的同步工作。
  • Schedule 将Task组成TaskGroup,默认单个任务组的并发数量为5。
  • TaskGroup 负责启动Task。
  • DataX完成单个数据同步的作业,我们称之为Job,DataX接受到一个Job之后,将启动一个进程来完成整个作业同步过程。DataX Job模块是单个作业的中枢管理节点,承担了数据清理、子任务切分(将单一作业计算转化为多个子Task)、TaskGroup管理等功能。DataXJob启动后,会根据不同的源端切分策略,将Job切分成多个小的Task(子任务),以便于并发执行。Task便是DataX作业的最小单元,每一个Task都会负责一部分数据的同步工作。切分多个Task之后,DataX Job会调用Scheduler模块,根据配置的并发数据量,将拆分成的Task重新组合,组装成TaskGroup(任务组)。每一个TaskGroup负责以一定的并发运行完毕分配好的所有Task,默认单个任务组的并发数量为5。每一个Task都由TaskGroup负责启动,Task启动后,会固定启动Reader—>Channel—>Writer的线程来完成任务.

DataX调度流程 举例来说,用户提交了一个DataX作业,并且配置了20个并发,目的是将一个100张分表的mysql数据同步到odps里面。 DataX的调度决策思路是:

  • 1 DataXJob根据分库分表切分成了100个Task。
  • 2 根据20个并发,默认单个任务组的并发数量为5,DataX计算共需要分配4个TaskGroup。
  • 3 这里4个TaskGroup平分切分好的100个Task,每一个TaskGroup负责以5个并发共计运行25个Task。

到了这里,关于DATAX的架构和运行原理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Nginx架构篇(一)动态网站架构、LNMP、FastCGI、nginx+fastcgi运行原理

    资源文件识别 语言识别 框架识别 index.php 开源的php Window/Linux+nginx+php+mysql index.py 开源的python Window/Linux+apache+python+mysql index.jsp 商业java Window/Linux+tomcat+JDK+Oracle index.asp 商业C# Window+iis+asp.net+sql-server/oracle/mog0db 在vmware安装centos7,关闭防火墙和selinux systemctl stop firewalld setenforce 0 临

    2023年04月09日
    浏览(46)
  • Apollo规划模块代码学习(1): 算法架构原理、运行机制一文详解

    Apollo开源自动驾驶平台中,高清地图模块提供了每个在线模块都可以访问的高清地图。感知和定位模块提供了必要的动态环境信息,可以在预测模块中进一步用于预测未来的环境状态。运动规划模块考虑所有信息,以生成安全平滑的轨迹,并将其输入车辆控制模块。 目前Ap

    2024年01月25日
    浏览(47)
  • 云原生架构设计与实现:Spark 在 K8s 上运行的基本原理

    在 Kubernetes(K8s)中,Pod 是最小的可调度单元。当 Spark 任务运行在 K8s 上时,无论是 Driver 还是 Executor 都由一个单独的 Pod 来表示。每个 Pod 都被分配了一个唯一的 IP 地址,并且可以包含一个或多个容器(Container)。Driver 和 Executor 的 JVM 进程都是在这些 Container 中启动、运行

    2024年01月19日
    浏览(48)
  • DataX简介、部署、原理和使用介绍

    项目地址:https://github.com/alibaba/DataX 官方文档:https://github.com/alibaba/DataX/blob/master/introduction.md ​ DataX 是阿里云 DataWorks数据集成 的开源版本,在阿里巴巴集团内被广泛使用的离线数据同步工具/平台。DataX 实现了包括 MySQL、Oracle、OceanBase、SqlServer、Postgre、HDFS、Hive、ADS、HBas

    2024年02月15日
    浏览(39)
  • 四, Spark运行架构

    Spark框架的核心是一个计算引擎, 整体来说, 它采用了 主-从master-slave 的结构 下图是Spark执行时的基本结构, Driver 表示master: 负责管理整个集群中的作业任务调度 Executor 是slave: 负责实际执行任务 Spark Apllication的运行架构由两部分组成: Driver program(SparkContext) 和 Excutor , Spark Appli

    2023年04月09日
    浏览(36)
  • Flink实战之运行架构

    本文章:重点是分析清楚运行架构以及并行度与slot的分配 Flink中的节点可以分为JobManager和TaskManager。 JobManager处理器也称为Master,用于协调分布式任务执行。他们用来调度task进行具体的任务。TaskManager处理器也称为Worker,用于实际执行任务。 一个有效的Flink集群中可以包含多

    2024年01月18日
    浏览(37)
  • Spark运行架构

    Spark 是用于大规模数据处理的统一分析引擎。 可以对结构化、半结构化、非结构化等各种类型的数据数据结构进行自定义计算。 也支持Python、Java、Scala、R以及SQL语言去开发应用程序计算数据。 Spark借鉴了MapReduce思想发展而来,保留了其分布式并行计算得优点并改进了其明显

    2024年02月14日
    浏览(34)
  • Flink运行架构以及容错机制

    flink是一个开发框架,用于进行数据批处理,本文主要探讨Flink任务运行的的架构。由于在日常生产环境中,常用的是flink on yarn 和flink on k8s两种类型的模式,因此本文也主要探讨这两种类型的异同,以及不同角色的容错机制。 JM是一个独立的JVM进程,在HA场景下一个App能够同

    2024年01月24日
    浏览(50)
  • Flink 运行时[Runtime] 整体架构

    在 Flink 整个软件架构体系中,同样遵循着分层的架构设计理念,在降低系统耦合度的同时,也为上层用户构建 Flink 应用提供了丰富且友好的接口。从下图中可以看出整个 Flink 的架构体系基本上可以分为三层,由上往下依次是 API Libraries层 、 Runtime核心层 以及 物理部署层 。

    2024年02月04日
    浏览(39)
  • Servlet 运行和运行原理

    使用 IDEA 创建一个 Maven 项目. 菜单 - 文件 - 新建项目 - Maven 创建好后的项目: Maven 项目创建完毕后, 会自动生成一个 pom.xml 文件. 我们需要在 pom.xml 中引入 Servlet API 依赖的 jar 包. 在中央仓库 https://mvnrepository.com/ 中搜索 “ servlet ”, 一般第一个结果就是. 选择版本(点击版本号

    2024年02月11日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包