DataX编译笔记
DataX简介
DataX 是阿里巴巴集团内被广泛使用的离线数据同步工具/平台,实现包括 MySQL、SQL Server、Oracle、PostgreSQL、HDFS、Hive、HBase、OTS、ODPS 等各种异构数据源之间高效的数据同步功能。
获取源码
git clone git@github.com:alibaba/DataX.git
DataX 编译和使用环境
- Linux
- JDK(1.8以上,推荐1.8)
- Python(官方推荐
Python 2.6.X,实测Python 2.7.X可以正常编译) - Apache Maven 3.x (Compile DataX)
本文编译环境
| 名称 | 版本 |
|---|---|
| Mac OS X | 10.14.3 |
| Java | 1.8.0_152 |
| Maven | 3.5.0 |
| Python | 2.7.10 |
编译DataX常见问题
Maven 仓库配置问题
DataX目前支持相当丰富的数据读写插件,这也导致依赖复杂度增加,所以使用推荐配置多个仓库,防止Maven编译过程中找不到Jar包,如在编译hdfsreader插件时可能会遇到eigenbase-properties:jar:1.1.4 is missing异常,阿里云maven central库不存在eigenbase-properties-1.1.4版本。在编译过程中遇到缺少或找不到Jar包源时可以先查一下仓库中是否存在,如阿里云maven仓库查询
推荐如下仓库配置(参考: DataX Maven编译异常issue):
注:配置文件settings.xml位于:$M2_HOME/conf/settings.xml或个人配置~/.m2/settings.xml
<mirrors>
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
</mirror>
<!-- 中央仓库1 -->
<mirror>
<id>repo1</id>
<mirrorOf>central</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://repo1.maven.org/maven2/</url>
</mirror>
<!-- 中央仓库2 -->
<mirror>
<id>repo2</id>
<mirrorOf>central</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://repo2.maven.org/maven2/</url>
</mirror>
</mirrors>
tablestore-streamclient版本问题
编译otsstreamreader模块时如果遇到com.aliyun.openservices:tablestore-streamclient:jar问题时,可以修改otsstreamreader/pom.xml中tablestore-streamclient 版本信息,去掉-SNAPSHOT就好,如:
<dependency>
<groupId>com.aliyun.openservices</groupId>
<artifactId>tablestore-streamclient</artifactId>
<version>1.0.0</version>
</dependency>
odpsreader里odps-sdk-core依赖问题
源码里odpsreader中odps-sdk-core版本较低,在编译odpsreader插件过程中会报莫名奇妙的问题,有网友指这个版本依赖传递依赖含有阿里内部jar,外部仓库无法加载这个jar。后续版本可能会Fix这个问题,如果遇到odpsreader模块编译问题,建议升级odps-sdk-core版本试一下,可以到阿里云maven仓库 找最新版的sdk版本,并修改文件odpsreader/pom.xml,升级odps-sdk-core至最新版,例如下:
<dependency>
<groupId>com.aliyun.odps</groupId>
<artifactId>odps-sdk-core</artifactId>
<version>0.32.5-public</version>
</dependency>
Maven打包编译
建议打包时跳过测试,如:
mvn -U clean package assembly:assembly -Dmaven.test.skip=true
打包成功日志:
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 07:26 min
[INFO] Finished at: 2019-12-09T11:24:18+08:00
[INFO] Final Memory: 556M/1259M
[INFO] ------------------------------------------------------------------------
DataX编译指南
1026

被折叠的 条评论
为什么被折叠?



