本地调试和远程
1.远程调试
如果datax部署在linux服务上,可以通过运行命令添加参数开始远程调试
命令如下
python datax.py test.json -d
参数"-d" 是开启远程调试的参数
在本地idea新建一个远程调试
端口默认是9999,可以在datax.py文件进行设置
2.本地调试
本人所知是有两种方式来进行本地调试
第一种,通过代码设置
在core模块下找到Engine类,这是Datax运行的main方法,在里面添加两行代码,即可开始本地调试
参数说明:
datax.home是本地datax打完包后的目录
第二行只需要关注-job后的参数,该参数为运行的json文件的绝对目录
public static void main(String[] args) throws Exception {
int exitCode = 0;
try {
//设置运行的datax的家目录
System.setProperty("datax.home", "D:\\workspace\\idea\\datax\\target\\datax\\datax");
//设置datax的运行脚本信息
args = new String[]{"-mode", "standalone", "-jobid", "-1", "-job", "D:\\test.json"};
Engine.entry(args);
} catch (Throwable e) {
exitCode = 1;
LOG.error("\n\n经DataX智能分析,该任务最可能的错误原因是:\n" + ExceptionTracker.trace(e));
if (e instanceof DataXException) {
DataXException tempException = (DataXException) e;
ErrorCode errorCode = tempException.getErrorCode();
if (errorCode instanceof FrameworkErrorCode) {
FrameworkErrorCode tempErrorCode = (FrameworkErrorCode) errorCode;
exitCode = tempErrorCode.toExitValue();
}
}
System.exit(exitCode);
}
System.exit(exitCode);
}
第二种方式,给程序设置运行参数
设置方式如下所示
设置完毕后就可以在本地debug运行了