认识DataX及简单入门

举报
WHYBIGDATA 发表于 2023/02/21 09:13:40 2023/02/21
【摘要】 认识DataX及简单入门 认识DataX及简单入门 1. DataX的概述 1.1 什么是DataX 1.2 DataX 的设计 1.3 支持的数据源 1.3 支持的数据源 1.4 框架设计 1.5 运行原理 1.6 DataX和Sqoop的对比 2. 简单入门 2.1 官方地址 2.2 前置要求 2.3 安装 1. DataX的概述 1.1 什么是DataXDataX 是阿里巴巴开源的一...

认识DataX及简单入门



1. DataX的概述

1.1 什么是DataX

DataX 是阿里巴巴开源的一个异构数据源离线同步工具,致力于实现包括关系型数据库(MySQL、Oracle 等)、HDFS、Hive、ODPS、HBase、FTP 等各种异构数据源之间稳定高效的数据同步功能。

1.jpg

1.2 DataX 的设计

为了解决异构数据源同步问题,阿里巴巴将DataX如下设计:

将复杂的网状的同步链路变成了星型数据链路, DataX 作为中间传输载体负责连接各种数据源。当需要接入一个新的数据源的时候,只需要将此数据源对接到DataX,便能跟已有的数据源做到无缝数据同步。

如下图所示:

2.jpg

1.3 支持的数据源

DataX 目前已经有了比较全面的插件体系,主流的RDBMS 数据库、NOSQL、大数据计算系统都已经接入。

如下图所示:

1.3 支持的数据源

DataX 目前已经有了比较全面的插件体系,主流的RDBMS 数据库、NOSQL、大数据计算系统都已经接入。

如下图所示:

3.jpg

1.4 框架设计

DataX的框架如下图所示:

4.jpg

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

1.5 运行原理

见下图:

5.jpg

解释说明:

  • Job:单个作业的管理节点,负责数据清理、子任务划分、TaskGroup.监控管理。
  • Task:由Job切分而来,是DataX作业的最小单元,每个Task负责一部分数据的同步工作。
  • Schedule:将Task组成TaskGroup,单个TaskGroup的并发数量为5。’
  • TaskGroup:负责启动Task。

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

那么DataX 的调度决策思路是:

  • DataXJob 根据分库分表切分成了 100 个 Task。
  • 根据 20 个并发,DataX 计算共需要分配 4 个 TaskGroup。
  • 4 个TaskGroup 平分切分好的 100 个 Task,每一个 TaskGroup 负责以 5 个并发共计运行 25 个 Task。

1.6 DataX和Sqoop的对比

功能 DataX Sqoop
运行模式 单进程多线程 MR
MySQL 读写 单机压力大; 读写粒度容易控制 MR 模式重,写出错处理麻烦
Hive 读写 单机压力大 很好
文件格式 orc 支持 orc 不支持,可添加
分布式 不支持,可以通过调度系统规避 支持
流控 有流控功能 需要定制
统计信息 已有一些统计,上报需定制 没有,分布式的数据收集不方便
数据校验 在 core 部分有校验功能 没有,分布式的数据收集不方便
监控 需要定制 需要定制
社区 开源不久,社区不活跃 一直活跃,核心部分变动很少

2. 简单入门

2.1 官方地址

下载地址:http://datax-opensource.oss-cn-hangzhou.aliyuncs.com/datax.tar.gz

源码地址:https://github.com/alibaba/DataX

2.2 前置要求

  • 操作系统:Linux
  • JDK:1.8 以上,推荐 1.8
  • Python:推荐 Python2.6.X

2.3 安装

  • 将下载好的datax.tar.gz 上传到 node01 的 /opt/software目录下
  • 解压 datax.tar.gz 到/opt/module目录下
[whybigdata@node01 software]$ tar -zxvf datax.tar.gz -C /opt/module/
  • 运行自动检测脚本
[whybigdata@node01 bin]$ cd /opt/module/datax/bin/
[whybigdata@node01 bin]$ python datax.py /opt/module/datax/job/job.json

结果如下,表示没有问题,安装成功

6.jpg

全文结束!

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。