- DataX 是阿里巴巴集团内被广泛使用的离线数据同步工具/平台,实现包括
MySQL、Oracle、HDFS、Hive、OceanBase、HBase、OTS、ODPS
等各种异构数据源之间高效的数据同步功能。
先请配置DataX 环境变量
Linux、Windows
JDK(1.8)
Python(推荐Python2.6.X)
Apache Maven 3.x (Compile DataX)
|
|
一、工具下载以及部署
方法一、直接下载DataX工具包(如果仅是使用,推荐直接下载):DataX下载地址(http://datax-opensource.oss-cn-hangzhou.aliyuncs.com/datax.tar.gz)
下载后解压至本地某个目录,修改权限为755,进入bin目录,即可运行样例同步作业:
$ tar zxvf datax.tar.gz
$ sudo chmod -R 755 {YOUR_DATAX_HOME}
$ cd {YOUR_DATAX_HOME}/bin
$ python datax.py ../job/job.json
二、配置示例:从MySQL读取数据 写入MYSQL
|
|
第三步:启动DataX
###三、配置定时任务(Linux环境):从MySQL读取数据 写入ODPS,通过crontab命令实现
|
|
crond (pid 30742) is running...
第一步:创建作业的配置文件(json格式) 参考上节内容。这里假设已配置好MySQL到ODPS的配置文件mysql2odps.json
第二步:列出列出crontab文件,命令: crontab -l
(1)若出现以下日志,表示当前用户没有定时任务,用户需要新建crontab文件,并提交crontab文件,参考第三步。
$crontab -l
no crontab for xxx
(2)若出现以下日志,表示当前用户已经有正在运行的定时任务,用户只需用命令crontab -e 来编辑crontab文件,参考第四步。 shell $ crontab -l 0,10,20,35,44,50 python /home/admin/datax3/bin/datax.py /home/admin/mysql2odps.json >>/home/hanfa.shf/log.date +\%Y\%m\%d\%H\%M\%S
2>&1
第三步:若当前用户没有定时任务(之前从未创建过crontab任务)
(1)创建一个新的crontab文件,如取名crondatax
示例1:每天13点5分进行同步作业,并把运行日志输出到目录/home/hanfa.shf/下log.运行时间 文件中,如定时运行是在2016-3-26 13:10:13运行的,产生的日志文件名为:log.20160326131023
$ vim crondatax
#输入以下内容
5 13 * * * python /home/admin/datax3/bin/datax.py /home/admin/mysql2odps.json >>/home/hanfa.shf/log.`date +\%Y\%m\%d\%H\%M\%S` 2>&1
#/home/admin/datax3/bin/datax.py 表示你安装的DataX datax.py所在目录(请替换为您真实的绝对路径目录);
#/home/admin/mysql2odps.json 表示作业的配置文件目录(请替换为您真实的绝对路径目录);
#/home/hanfa.shf/log.`date +\%Y\%m\%d\%H\%M\%S` 表示日志输出位置,并以log.当前时间 命名(请替换为您真实的绝对路径目录)
(2)提交你刚刚创建的crontab文件 shell $ crontab crondatax #crondatax 你创建的crontab文件名 (3)重启crontab服务 shell $ sudo /etc/init.d/crond restart Stopping crond: [ OK ] Starting crond: [ OK ] (4)在13点5分过后,在日志目录会看到对应的日文件 shell $ ls -al /home/hanfa.shf/ -rw-r–r– 1 hanfa.shf users 12062 Mar 26 13:05 log.20160326130501
第四步:若当前用户已有定时任务(想继续增加定时任务)
(1)编辑已有crontab文件
示例2:每10分钟运行一次同步任务,并把运行日志输出到目录/home/hanfa.shf/下log.运行时间 文件中,如定时运行是在2016-3-26 13:10:13运行的,产生的日志文件名为:log.20160326131023
$ crontab -e
#会进入已有crontab文件编辑界面,继续增加定时任务即可,本示例增加以下内容,并保存
0,10,20,30,40,50 * * * * python /home/admin/datax3/bin/datax.py /home/admin/mysql2odps.json >>/home/hanfa.shf/log.`date +\%Y\%m\%d\%H\%M\%S` 2>&1
(2)重启crontab服务
|
|