记一个Datax现存问题
目录
复现
1 | docker run --name datax-issue -p 27017:27017 -d mongo:4.0.4 |
1 | use datax |
1 | wget http://datax-opensource.oss-cn-hangzhou.aliyuncs.com/datax.tar.gz |
1 | { |
1 | python bin/datax.py job/job.json |
1 | com.alibaba.datax.common.exception.DataXException: Code:[Framework-13], Description:[DataX插件运行时出错, 具体原因请参看DataX运行结束时的错误诊断信息 .]. - java.lang.NumberFormatException |
解决
1 | git clone https://github.com/alibaba/DataX.git && cd DataX |
1 | //TODO deal with Double.isNaN() |
1 | mvn -U clean package assembly:assembly -Dmaven.test.skip=true |
- 然后将这里编译生成的mongodbreader-0.0.1-SNAPSHOT.jar替换下载包中相应*.jar
1 | python bin/datax.py job/job.json |
1 | 34.9016151428223 null |
原理
- JShell (Java 9 REPL Read Eval Print Loop) = Java 9新增的一个交互式的编程环境工具
1 | /Library/Java/JavaVirtualMachines/jdk-11.0.8.jdk/Contents/Home/bin/jshell |
增补
- 问题1: Double无法转换成Integer错误
1 | // mongodbreader/src/main/java/com/alibaba/datax/plugin/reader/mongodbreader/util/CollectionSplitUtil.java |
- 问题2: job执行时卡住不动且无报错
1 | // channel 配置成1 根本原因待定位 |
- 问题3: 保持服务器上任务持续执行
1 | sudo apt install -y screen |