DataX编译笔记

DataX编译笔记

      • DataX简介
      • 获取源码
      • DataX 编译和使用环境
      • 本文编译环境
      • 编译DataX常见问题
        • Maven 仓库配置问题
        • tablestore-streamclient版本问题
        • odpsreader里odps-sdk-core依赖问题
      • Maven打包编译
      • 参考

DataX简介

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

获取源码

git clone [email protected]: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>alimavenid>
            <mirrorOf>centralmirrorOf>
            <name>aliyun mavenname>
            <url>http://maven.aliyun.com/nexus/content/repositories/central/url>
        mirror>
        
        <mirror>
            <id>repo1id>
            <mirrorOf>centralmirrorOf>
            <name>Human Readable Name for this Mirror.name>
            <url>http://repo1.maven.org/maven2/url>
        mirror>
        
        <mirror>
            <id>repo2id>
            <mirrorOf>centralmirrorOf>
            <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.openservicesgroupId>
            <artifactId>tablestore-streamclientartifactId>
            <version>1.0.0version>
        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.odpsgroupId>
			<artifactId>odps-sdk-coreartifactId>
			<version>0.32.5-publicversion>
		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

你可能感兴趣的:(数据湖,大数据)