DataX用户向导(下载安装及配置)

DataX 是阿里巴巴集团内被广泛使用的离线数据同步工具/平台,实现包括 MySQL、SQL Server、Oracle、PostgreSQL、HDFS、
Hive、HBase、OTS、ODPS 等各种异构数据源之间高效的数据同步功能。
一、核心特性
- 插件化架构:
DataX本身作为数据同步框架,将不同数据源的同步抽象为从源头数据源读取数据的Reader插件,以及向目标端写入数据的
Writer插件 - 高度可扩展:理论上
DataX框架可以支持任意数据源类型的数据同步工作 - 生态互通:
DataX插件体系作为一套生态系统,每接入一套新数据源即可实现和现有数据源的互通
二、系统要求
- Linux
- JDK(1.8以上,推荐1.8)
- Python(2或3都可以)
- Apache Maven 3.x (非必须,编译
DataX时需要)
三、快速开始
3.1 部署DataX
方法一:直接下载DataX工具包
- 下载并解压DataX
# 切换到你准备安装的目录
cd /usr/local
# 下载DataX
wget https://datax-opensource.oss-cn-hangzhou.aliyuncs.com/202309/datax.tar.gz
# 解压DataX
tar -zxvf datax.tar.gz

- 进入 DataX的
bin目录,并自检
cd datax/bin
# 运行DataX自检脚本
python datax.py ../job/job.json

- 查看输出日志
查看输出日志,一切正常就表示成功了。
方法二:下载DataX源码并自行编译
一般在需要修改DataX源码的场景下才使用该方式。
- 下载
DataX源码:
git clone git@github.com:alibaba/DataX.git
- 通过
maven打包:
cd {DataX_source_code_home}
mvn -U clean package assembly:assembly -Dmaven.test.skip=true
打包成功后,日志显示如下:
[INFO] BUILD SUCCESS
[INFO] -----------------------------------------------------------------
[INFO] Total time: 08:12 min
[INFO] Finished at: 2015-12-13T16:26:48+08:00
[INFO] Final Memory: 133M/960M
[INFO] -----------------------------------------------------------------
打包成功后的 DataX 包位于 {DataX_source_code_home}/target/datax/datax/,结构如下:
cd {DataX_source_code_home}
ls ./target/datax/datax/
bin conf job lib log log_perf plugin script tmp
3.2 配置示例:从stream读取数据并打印到控制台
第一步:创建作业配置文件(json格式)
可以通过命令查看配置模板:
cd {YOUR_DATAX_HOME}/bin
python datax.py -r streamreader -w streamwriter
命令输出示例:
DataX (UNKNOWN_DATAX_VERSION), From Alibaba !
Copyright (C) 2010-2015, Alibaba Group. All Rights Reserved.
Please refer to the streamreader document:
https://github.com/alibaba/DataX/blob/master/streamreader/doc/streamreader.md
Please refer to the streamwriter document:
https://github.com/alibaba/DataX/blob/master/streamwriter/doc/streamwriter.md
Please save the following configuration as a json file and use
python {DATAX_HOME}/bin/datax.py {JSON_FILE_NAME}.json
to run the job.
{
"job": {
"content": [
{
"reader": {
"name": "streamreader",
"parameter": {
"column": [],
"sliceRecordCount": ""
}
},
"writer": {
"name": "streamwriter",
"parameter": {
"encoding": "",
"print": true
}
}
}
],
"setting": {
"speed": {
"channel": ""
}
}
}
}
根据模板配置的 stream2stream.json 文件如下:
{
"job": {
"content": [
{
"reader": {
"name": "streamreader",
"parameter": {
"sliceRecordCount": 10,
"column": [
{
"type": "long",
"value": "10"
},
{
"type": "string",
"value": "hello,你好,世界-DataX"
}
]
}
},
"writer": {
"name": "streamwriter",
"parameter": {
"encoding": "UTF-8",
"print": true
}
}
}
],
"setting": {
"speed": {
"channel": 5
}
}
}
}
第二步:启动DataX
python datax.py ./stream2stream.json
同步结束,显示日志如下:
...
2015-12-17 11:20:25.263 [job-0] INFO JobContainer -
任务启动时刻 : 2015-12-17 11:20:15
任务结束时刻 : 2015-12-17 11:20:25
任务总计耗时 : 10s
任务平均流量 : 205B/s
记录写入速度 : 5rec/s
读出记录总数 : 50
读写失败总数 : 0
四、常见问题
运行datax脚本时提示权限被拒绝
-bash: ./datax.py: Permission denied
解决方案:
## 先确认文件当前的权限设置
## 输出结果中,若文件名前的权限位(如 -rw-r--r--)没有 x(执行权限),则说明缺少可执行权限。
ls -l ./datax.py
## 使用 chmod 命令为 datax.py 赋予执行权限:
chmod +x ./datax.py
评论