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

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