- github上下载datax的源代码,本地解压导入idea
下载最新版的源代码:
https://github.com/alibaba/DataX/
Download ZIP
下载历史版本的源代码:
找到 Releases,选择版本,进行下载
解压后用idea打开
修改项目的maven的配置
修改父工程的pom文件,选择你要测试的组件,不需要的组件可以注释掉,比如我测试mysql迁移mysql,那么我需要mysqlreader组件、mysqlwriter组件,在保留mysqlreader、mysqlwriter、以及datax公用的组件,其他全部注释掉
最终保留的子项目如下,pom中的其他内容不需要修改
<modules>
<module>common</module>
<module>core</module>
<module>transformer</module>
<!-- reader -->
<module>mysqlreader</module>
<!-- writer -->
<module>mysqlwriter</module>
<!-- common support module -->
<module>plugin-rdbms-util</module>
<module>plugin-unstructured-storage-util</module>
<module>hudiwriter</module>
</modules>
刷新maven,等待依赖下载完毕
进入到项目最外层的目录输入CMD(前提配置了本地MAVEN的环境变量)
使用MAVEN命令打包
mvn -U clean package assembly:assembly -Dmaven.test.skip=true
打包完成后在target目录下生成了datax目录
在core下找到Datax的启动入口类Engine
配置Engine的Datax安装目录,要执行的json任务
找到main方法,在main下添加两行
//设置系统变量,也就是datax的目录路径
System.setProperty(“datax.home”,“D:\ \DataX-master\DataX-master\target\datax\datax”);
//设置job路径和一些参数
String[] datxArgs = {“-job”, “D:\ \DataX-master\DataX-master\job\MySQLToMySQL.json”, “-mode”, “standalone”, “-jobid”, “-1”};
Engine.entry(args); 修改为Engine.entry(datxArgs);
修改json任务内容
运行Engine
如果要放到集群测试
打包后将插件上传到集群的DATAX对应目录
写好配置文件mysqltomysql.json
运行命令:
python /opt/module/datax/bin/datax.py -p “-Dpath=/data/warehouse/rsd/t_rsd_amber_agent_event_log/2019/06/05” /opt/module/datax/job/mysqltomysql.json