DataX编译笔记

DataX简介

DataX 是阿里巴巴集团内被广泛使用的离线数据同步工具/平台,实现包括 MySQL、SQL Server、Oracle、PostgreSQL、HDFS、Hive、HBase、OTS、ODPS 等各种异构数据源之间高效的数据同步功能。

获取源码

git clone [email protected]:alibaba/DataX.git

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.xmltablestore-streamclient 版本信息,去掉-SNAPSHOT就好,如:

        <dependency>
            <groupId>com.aliyun.openservices</groupId>
            <artifactId>tablestore-streamclient</artifactId>
            <version>1.0.0</version>
        </dependency>

odpsreader里odps-sdk-core依赖问题

源码里odpsreaderodps-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] ------------------------------------------------------------------------

参考

1.DataX源码打包编译采坑记

2.阿里巴巴同步插件Datax编译打包-maven

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章