背景:使用Datax做数仓同步数据得工具,有时需要自己开发或者修改某个reader或writer插件,那么本地调试就很重要。
一. 下载
从GitHub上下载或者clone下来Datax项目。
https://github.com/alibaba/DataX
找到Core模块,运行入口就在Core下得Engine
二. 编译
可以不编译所有模块,但common、core、transformer、plugin-unstructured-storage-util、plugin-rdbms-util这几个基本都是必要的。其他的可以注释掉,防止编译过慢。
三. 启动
1. 配置参数
编译好项目后就可以启动了。
首先配置启动的配置。
主要添加两个参数
DATAX的Home地址: -Ddatax.home=C:\xxx\DataX
任务模式:-mode standalone -jobid -1 -job C:\xxx\DataX\mailreader\target\datax\plugin\reader\mailreader\plugin_job_template.json
(C:\xxx\DataX\mailreader\target\datax\plugin\reader\mailreader\plugin_job_template.json 这个随便配置一个plugin_job_template.json就可以)
2. 添加任务JSON
来到Datax文件下的conf文件,添加你要执行的任务的JSON,文件名教core.json
3. 添加执行任务的插件
本地执行和线上执行一样,都需要在plugin中把插件的相关文件包放在plugin文件夹下,也是区分reader和writer的,这里面放和上面添加的core.json中所需要的reader和Wirter对应的插件包
这里的插件包是maven打包出来的。有时候独立插件打包失败你就打整包就行,一般独立打包失败是因为依赖的common等包没打下来。以ftpreader打包为例,maven打包成功后,找到打好的ftpreader包,放入plugin的reader中。
四, 运行
reader和writer包都打好放入plugin中后,就可以运行了。
五. 注意事项
1. 修改插件代码后需要重新编译放入plugin中,不然运行的代码都是老的,调试也会debug错乱。
2. 需要发布到线上的包可以直接从plugin中获取。