因为使用直接下载的Datax工具包,无法使用其它数据库作为写端(rdbmswriter),具体错误信息为:java.sql.SQLException: No suitable driver found …
检查变更记录发现:修复rdbmswriter插件,无法plugin.json下驱动,导致数据库连接报错问题 ,反编译下载的datax.tar.gz正好有这个问题。
于是,只能自己重新下载源代码重新编译了。
按照官方的文档 userGuid 进行编译,踩过一遍。把碰到的问题写下来。
1,系统要求:
System Requirements
- Linux
- JDK(1.8以上,推荐1.8)
- Python(推荐Python2.6.X)
- Apache Maven 3.x (Compile DataX)
官方的要求,基本上可用。但建议:Linux使用CentOS 6.9,因为配套的Python版本即是2.6.6,只需要配置Maven就好。Maven的版本建议使用3.2.5。刚开始用的3.8.1报错太多…
2,下载DataX源码:
$ git clone git@github.com:alibaba/DataX.git
使用git下载源码的方式,参考别的文档。BTW: 外网不稳定访问,多试。
3,通过maven打包:
$ cd {DataX_source_code_home}
$ mvn -U clean package assembly:assembly -Dmaven.test.skip=true
3.1,一定要记得配置国内镜像,修改setting.xml
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<url>https://maven.aliyun.com/repository/central</url>
</mirror>
3.2,找不到依赖包
[ERROR] Failed to execute goal on project hdfsreader: Could not resolve dependencies for project com.alibaba.datax:hdfsreader:jar:0.0.1-SNAPSHOT: Could not find artifact org.pentaho:pentaho-aggdesigner-algorithm:jar:5.1.5-jhyde in nexus-aliyun (https://maven.aliyun.com/repository/central) -> [Help 1]
从提示上看,是hdfsreader的包缺失,相应的hdfswriter也应该是不行的。因为我用不到这两个组件,于是在pom.xml中注释掉。
还有一个 oscarwriter,也用不到,也在pom.xml中注释掉。
[ERROR] Failed to execute goal on project oscarwriter: Could not resolve dependencies for project com.alibaba.datax:oscarwriter:jar:0.0.1-SNAPSHOT: Could not find artifact com.oscar:oscar:jar:7.0.8 at specified path /opt/DataX/oscarwriter/src/main/lib/oscarJDBC.jar -> [Help 1]
然后,编译成功。
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 05:43 min
[INFO] Finished at: 2021-05-28T00:42:50+08:00
[INFO] Final Memory: 305M/492M
[INFO] ------------------------------------------------------------------------