一. DataX3.0概念
dataX是一个异构数据源离线同步工具,实现包括关系型数据库(MySQL,Oracle.....)、hdfs、hive、odps、hbase等各种异构数据源之间稳定高效的数据同步功能。
二、DataX3.0框架设计
DataX作为离线数据同步框架,采用Framework + plugin架构构建。
-
Reader:Reader为数据采集模块,负责采集数据源的数据,将数据发送给Framework。
-
Writer: Writer为数据写入模块,负责不断向Framework取数据,并将数据写入到目的端。
-
Framework:Framework用于连接reader和writer,是两者的数据传输通道,并处理缓冲,流控,并发,数据转换等核心技术问题。
三、DataX 3.0六大核心优势
1.可靠的数据质量监控
-
完美解决数据传输个别类型失真问题
-
提供作业数据量运行时监控
-
提供脏数据探测
2.丰富的数据转换功能
3.精准的速度控制
"speed": { "channel": 5, "byte": 1048576, "record": 10000 }
4.强劲的同步性能
5.健壮的容错机制
6.极简的使用体验
四、DataX与Sqoop区别
功能 | DataX | Sqoop |
---|---|---|
运行模式 | 单进程多线程 | MR |
分布式 | 不支持,可以通过调度系统规避 | 支持 |
流控 | 有流控功能 | 需要定制 |
统计信息 | 已有一些统计,上报要定制 | 没有,分布式的数据收集不方便 |
数据校验 | 在core部分有校验功能 | 没有,分布式的数据收集不方便 |
监控 | 需要定制 | 需要定制 |
五、DataX部署
1.下载
github上下载安装包并上传到master中
地址:https://github.com/alibaba/DataX
2.解压并配置环境变量
tar -zxvf datax.tar.gz
3.检查是否安装成功
[root@master datax]#python ./bin/datax.py ./job/job.json
六、DataX使用
dataX生成模板的命令:datax.py -r mysqlreader -w hdfswriter
{ "job": { "content": [ { "reader": { "name": "streamreader", "parameter": { "column": [{ "type":"string", "value":"dataX" }, { "type":"string", "value":"生成模板的" }, { "type":"string", "value":"命令" }], "sliceRecordCount": 10 } }, "writer": { "name": "streamwriter", "parameter": { "encoding": "UTF-8", "print": true } } } ], "setting": { "speed": { "channel": 2 } } } }
1.使用说明
1.1 DataX任务提交命令
python ./bin/datax.py ./job/job.json datax.py xxx.json
1.2 DataX配置文件格式
mysql->hdfs [root@master datax]# datax.py -r mysqlreader -w hdfswriter
{ "job": { "content": [ { "reader": { "name": "mysqlreader", "parameter": { "column": [], "connection": [ { "jdbcUrl": [], "table": [] } ], "password": "", "username": "", "where": "" } }, "writer"