01 引言
关于DataX
,在前面的博文《DataX教程(01)- 入门》已经介绍过,因为官方没有IDEA运行的示例文档,网上的资料参差不齐,所以本文主要讲解如何在IDEA
的环境下跑起DataX
,一次填完所有的坑。
我使用的环境是(没必要安装python
):
jdk1.8
macos
操作系统(这个不重要,windows
系统一样的操作)
02 IDEA下运行DataX
在IDEA
下运行DataX
,我们必须先知道流程,下面我画了一张流程图:
下面按步骤操作讲解。
2.1 步骤1:clone源码
DataX
的源码地址:https://github.com/alibaba/DataX.git
我们使用IDEA
导入,“File - > New -> Project from Version Control...
”:
输入源代码地址:
根据提示打开,等待依赖完成,直至导入完成,如果这里导入太慢,可以在maven
里的settings.xml
配置阿里云的镜像地址,如下:
<mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror>
注意:如果项目提示某个包没有,可以不用管它,直接跳到下一步,因为这个包不一定是我们需要的。
2.2 步骤2:编译源码
想了解maven的assembly自定义打包的内容可以参考我的博客《Maven的三种打包方式(jar、shade、assembly)》
注意DataX
使用的是assembly
自定义结构打包,所以可以使用命令打包,在项目根节点下,控制台运行maven
脚本:
mvn clean package -DskipTests assembly:assembly
或者直接使用IDEA
的按着control
键选择clean
(清理)和package
(打包),然后Run Maven Build
运行,等待编译。
编译完成后,我们可以看到项目目录即/core
下生成了一个target
文件夹,这个编译后的包里,我们需要的只有下面红框datax
里面的内容。
为了方便理解,我把它编译后的datax
文件夹复制到我的桌面(地址:/Users/用户名/Desktop/datax
):
2.3 步骤3:配置编译后的包
我们可以看到datax
编译后的包里面的目录结构如下:
我们需要配置的是conf
文件夹里面的core.json
文件里面的core.transport.speed.byte
,只要不为-1
就可以了,值可以任意写,如下图(如果这里不改,后续跑程序的时候会报错),我把byte
设置为2000000了,表示单个channel
的大小改为2MB
:
2.4 步骤4:复制用到的插件
到这里编译后的包配置完成了,我们看下job
文件夹下的job.json
文件里面的内容:
{ "job": { "setting": { "speed": { "byte":10485760 }, "errorLimit": { "record": 0, "percentage": 0.02 } }, "content": [ { "reader": { "name": "streamreader", "parameter": { "column" : [ { "value": "DataX", "type": "string" }, { "value": 日期xxxx, "type": "long" }, { "value": "日期xxxx", "type": "date" }, { "value": true, "type": "bool" }, { "value": "test", "type": "bytes" } ], "sliceRecordCount": 100000 } }, "writer": { "name": "streamwriter", "parameter": { "print": false, "encoding": "UTF-8" } } } ] } }
可以看到这是一个简单的job
示例任务,用到了streamreader
以及streamwriter
插件,所以我们首先在存放在桌面的datax目录下,新建一个plugin
目录。
再回到我们的工程,我们把编译后的streamreader
插件和streamwriter
插件复制到我们的plugin
目录:
复制后:
2.5 步骤5:配置运行环境
注意datax的启动类在src/main/java/com/alibaba/datax/core/Engine.java
类里面,我们打开这个类,在启动箭头里右键“Create "Engine.main()”,点击来配置运行环境:
点击打开后,配置界面如下:
只需要配置以上三项即可:
配置项 | 配置内容 | 描述 |
VM options | -Ddatax.home=/Users/用户名/Desktop/datax | datax编译后存放的地址 |
Program arguments | -mode standalone -jobid -1 -job /Users/yanglinwei/Desktop/datax/job/job.json | 运行需要的参数 |
JRE | 1.8 | 官方建议使用jdk1.8 |
2.6 步骤6:启动项目
直接右键Debug,如下图:
可以看到没有报错,运行正常:
下面详细把日志复制下来,具体的日志内容这里就不再详述了:
① 系统以及JVM的一些信息:
② job配置打印:
③ 操作结果概览:
03 文末
本文主要讲解了IDEA
运行DataX
的完整流程,有疑问的童鞋欢迎留言。