- 01 引言
- 02 IDEA下运行DataX
- 2.1 步骤1:clone源码
- 2.2 步骤2:编译源码
- 2.3 步骤3:配置编译后的包
- 2.4 步骤4:复制用到的插件
- 2.5 步骤5:配置运行环境
- 2.6 步骤6:启动项目
- 03 文末
关于DataX
,在前面的博文《DataX教程(01)- 入门》已经介绍过,因为官方没有IDEA运行的示例文档,网上的资料参差不齐,所以本文主要讲解如何在IDEA
的环境下跑起DataX
,一次填完所有的坑。
我使用的环境是(没必要安装python
):
jdk1.8
macos
操作系统(这个不重要,windows
系统一样的操作)
在IDEA
下运行DataX
,我们必须先知道流程,下面我画了一张流程图:
下面按步骤操作讲解。
2.1 步骤1:clone源码DataX
的源码地址:https://github.com/alibaba/DataX.git
我们使用IDEA
导入,“File - > New -> Project from Version Control...
”: 输入源代码地址:
根据提示打开,等待依赖完成,直至导入完成,如果这里导入太慢,可以在
maven
里的settings.xml
配置阿里云的镜像地址,如下:
alimaven
aliyun maven
http://maven.aliyun.com/nexus/content/groups/public/
central
注意:如果项目提示某个包没有,可以不用管它,直接跳到下一步,因为这个包不一定是我们需要的。
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
):
我们可以看到datax
编译后的包里面的目录结构如下: 我们需要配置的是
conf
文件夹里面的core.json
文件里面的core.transport.speed.byte
,只要不为-1
就可以了,值可以任意写,如下图(如果这里不改,后续跑程序的时候会报错),我把byte
设置为2000000了,表示单个channel
的大小改为2MB
:
到这里编译后的包配置完成了,我们看下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": 19890604,
"type": "long"
},
{
"value": "1989-06-04 00:00:00",
"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
目录: 复制后:
注意datax的启动类在src/main/java/com/alibaba/datax/core/Engine.java
类里面,我们打开这个类,在启动箭头里右键“Create "Engine.main()”,点击来配置运行环境: 点击打开后,配置界面如下:
只需要配置以上三项即可:
直接右键Debug,如下图: 可以看到没有报错,运行正常:
下面详细把日志复制下来,具体的日志内容这里就不再详述了:
① 系统以及JVM的一些信息:
② job配置打印: ③ 操作结果概览:
本文主要讲解了IDEA
运行DataX
的完整流程,有疑问的童鞋欢迎留言。