DataX
GitHub地址:https://github.com/alibaba/DataX
安装DataX
安装dataX有两种方式,一种是tar.gz直接安装,一种是用源码自行编译安装。这里使用tar.gz直接安装
方法一
直接下载DataX工具包:http://datax-opensource.oss-cn-hangzhou.aliyuncs.com/datax.tar.gz
下载后解压至本地某个目录,进入bin目录,即可运行同步作业:
$ cd {YOUR_DATAX_HOME}/bin$ python datax.py {YOUR_JOB.json}
自检脚本:
python {YOUR_DATAX_HOME}/bin/datax.py {YOUR_DATAX_HOME}/job/job.json
方法二
下载DataX源码,自己编译:DataX源码
(1)、下载DataX源码:
$ git clone git@github.com:alibaba/DataX.git
(2)、通过maven打包:
$ cd {DataX_source_code_home}$ mvn -U clean package assembly:assembly -Dmaven.test.skip=true
打包成功,日志显示如下:
[INFO] BUILD SUCCESS[INFO] -----------------------------------------------------------------[INFO] Total time: 08:12 min[INFO] Finished at: 2015-12-13T16:26:48+08:00[INFO] Final Memory: 133M/960M[INFO] -----------------------------------------------------------------
打包成功后的DataX包位于 {DataX_source_code_home}/target/datax/datax/ ,结构如下:
$ cd {DataX_source_code_home}$ ls ./target/datax/datax/bin conf job lib log log_perf plugin script
系统要求
LinuxJDK(1.8以上,推荐1.8)Python(2或3都可以)Apache Maven 3.x (Compile DataX)
下载与安装
wget http://datax-opensource.oss-cn-hangzhou.aliyuncs.com/datax.tar.gztar -zxvf datax.tar.gzcd datax
DataX基本使用
1.官方演示案例
使用官方演示案例,执行自检脚本:
cd dataxpython bin/datax.py job/job.json
报错:
DataX (DATAX-OPENSOURCE-3.0), From Alibaba !Copyright (C) 2010-2017, Alibaba Group. All Rights Reserved.2022-05-12 17:02:28.374 [main] WARN ConfigParser - 插件[streamreader,streamwriter]加载失败,1s后重试... Exception:Code:[Common-00], Describe:[您提供的配置文件存在错误信息,请检查您的作业配置 .] - 配置信息错误,您提供的配置文件[/usr/local/program/datax/plugin/reader/._hbase094xreader/plugin.json]不存在. 请检查您的配置文件. 2022-05-12 17:02:29.382 [main] ERROR Engine - 经DataX智能分析,该任务最可能的错误原因是:com.alibaba.datax.common.exception.DataXException: Code:[Common-00], Describe:[您提供的配置文件存在错误信息,请检查您的作业配置 .] - 配置信息错误,您提供的配置文件[/usr/local/program/datax/plugin/reader/._hbase094xreader/plugin.json]不存在. 请检查您的配置文件. at com.alibaba.datax.common.exception.DataXException.asDataXException(DataXException.java:26) at com.alibaba.datax.common.util.Configuration.from(Configuration.java:95) at com.alibaba.datax.core.util.ConfigParser.parseOnePluginConfig(ConfigParser.java:153) at com.alibaba.datax.core.util.ConfigParser.parsePluginConfig(ConfigParser.java:125) at com.alibaba.datax.core.util.ConfigParser.parse(ConfigParser.java:63) at com.alibaba.datax.core.Engine.entry(Engine.java:137) at com.alibaba.datax.core.Engine.main(Engine.java:204)
删除datax/plugin/reader
与datax/plugin/writer/
下所有._xxxx隐藏文件
python {YOUR_DATAX_HOME}/bin/datax.py {YOUR_DATAX_HOME}/job/job.json0
再次执行:python bin/datax.py job/job.json
python {YOUR_DATAX_HOME}/bin/datax.py {YOUR_DATAX_HOME}/job/job.json1
2.从stream读取数据并打印到控制台
查看配置模板
可以通过命令查看配置模板: python datax.py -r {YOUR_READER} -w {YOUR_WRITER}
python {YOUR_DATAX_HOME}/bin/datax.py {YOUR_DATAX_HOME}/job/job.json2
python {YOUR_DATAX_HOME}/bin/datax.py {YOUR_DATAX_HOME}/job/job.json3
创建作业配置文件
根据模板配置,创建作业配置文件vim stream2stream.json
python {YOUR_DATAX_HOME}/bin/datax.py {YOUR_DATAX_HOME}/job/job.json4
启动DataX
python {YOUR_DATAX_HOME}/bin/datax.py {YOUR_DATAX_HOME}/job/job.json5
python {YOUR_DATAX_HOME}/bin/datax.py {YOUR_DATAX_HOME}/job/job.json6
3.从MySQL抽取数据到HDFS
获取配置模板
python bin/datax.py -r mysqlreader -w hdfswriter
python {YOUR_DATAX_HOME}/bin/datax.py {YOUR_DATAX_HOME}/job/job.json7
创建作业配置文件
python {YOUR_DATAX_HOME}/bin/datax.py {YOUR_DATAX_HOME}/job/job.json8
启动DataX
python {YOUR_DATAX_HOME}/bin/datax.py {YOUR_DATAX_HOME}/job/job.json9
$ git clone git@github.com:alibaba/DataX.git0
4.从Hive抽取数据到MySQL
准备Hive数据
创建Hive外部表
$ git clone git@github.com:alibaba/DataX.git1
创建vim tb_user.text
并添加如下数据
$ git clone git@github.com:alibaba/DataX.git2
上传到Hive外部表/hive/warehouse/tb_user
目录下
$ git clone git@github.com:alibaba/DataX.git3
查看tb_user表数据
$ git clone git@github.com:alibaba/DataX.git4
查看配置模板
$ git clone git@github.com:alibaba/DataX.git5
$ git clone git@github.com:alibaba/DataX.git6
创建作业配置文件
$ git clone git@github.com:alibaba/DataX.git7
启动DataX
$ git clone git@github.com:alibaba/DataX.git8
$ git clone git@github.com:alibaba/DataX.git9
DataX Web
DataX Web是在DataX之上开发的分布式数据同步工具,提供简单易用的 操作界面,降低用户使用DataX的学习成本,缩短任务配置时间,避免配置过程中出错。
学习参考:https://blog.csdn.net/qq_38628046/article/details/124769355