准备工作:

JDK(1.8 以上,推荐 1.8)
Python(2,3 版本都可以)
Apache Maven 3.x(Compile DataX)(手动打包使用,使用 tar 包方式不需要安装)

主机名 操作系统 IP 地址 软件包
线上210 CentOS 7.9 182.169.212.210
线下192 CentOS 7.9 192.168.88.192 jdk-8u181-linux-x64.tar.gz datax.tar.gz
安装 JDK:下载地址(需要创建 Oracle 账号)
配置jdk环境变量
vi /etc/profile

export JAVA_HOME=/usr/local/java/jdk1.8.0_161
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export CANAL_SERVER_HOME=/usr/local/canal/deployer
export PATH=$CANAL_SERVER_HOME/bin:$PATH

[root@192 ~]# source /etc/profile
[root@192 ~]# java -version
java version "1.8.0_161"
Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)
[root@192 ~]# javac    #能显示java信息表示安装jdk按装成功

因为 CentOS 7 上自带 Python 2.7 的软件包,所以不需要进行安装

Linux 上安装 DataX 软件

[root@192 ~]# wget http://datax-opensource.oss-cn-hangzhou.aliyuncs.com/datax.tar.gz
[root@192 ~]# tar zxf datax.tar.gz -C /usr/local/
[root@192 ~]# rm -rf /usr/local/datax/plugin/*/._*        # 需要删除隐藏文件 (重要)

当未删除时,可能会输出:[/usr/local/datax/plugin/reader/._drdsreader/plugin.json] 不存在. 请检查您的配置文件.

验证:

[root@192 ~]# cd /usr/local/datax/bin
[root@192 ~]# python datax.py ../job/job.json        # 用来验证是否安装成功

输出:

2022-04-24 17:21:04.845 [job-0] INFO  JobContainer - 
任务启动时刻                    : 2022-04-24 17:20:54
任务结束时刻                    : 2022-04-24 17:21:04
任务总计耗时                    :                 10s
任务平均流量                    :          253.91KB/s
记录写入速度                    :          10000rec/s
读出记录总数                    :              100000
读写失败总数                    :                   0

能显示出来表示验证成功

通过 DataX 实 MySQL 数据同步

生成 MySQL 到 MySQL 同步的模板:

#输出mysql配置模版
[root@192 bin]# python /usr/local/datax/bin/datax.py -r mysqlreader -w mysqlwriter > /usr/local/datax/job/mysql2mysql.json

#根据模板编写 mysql2mysql.json文件

{
    "job": {
        "content": [
            {
                "reader": {
                    "name": "mysqlreader", 
                    "parameter": {
                        "column": ["id","name"], #"*"表示所有字段
                        "connection": [
                            {
                                "jdbcUrl": ["jdbc:mysql://x.x.x.210:3306/mytest"], 
                                "table": ["user"]
                            }
                        ], 
                        "password": "root", 
                        "username": "root" 
                    }
                }, 
                "writer": {
                    "name": "mysqlwriter", 
                    "parameter": {
                        "column": ["id","name"], 
                        "connection": [
                            {
                                "jdbcUrl": "jdbc:mysql://192.168.88.192:3306/mytest", 
                                "table": ["user"]
                            }
                        ], 
                        "password": "root", 
                        "username": "root", 
                        "writeMode": "insert"
                    }
                }
            }
        ], 
        "setting": {
            "speed": {
                "channel": "6"
            }
        }
    }
}

验证:


[root@192 job]# python /usr/local/datax/bin/datax.py mysql2mysql.json


2022-04-24 17:39:03.445 [job-0] INFO  JobContainer - 
任务启动时刻                    : 2022-04-24 17:38:49
任务结束时刻                    : 2022-04-24 17:39:03
任务总计耗时                    :                 14s
任务平均流量                    :                0B/s
记录写入速度                    :              0rec/s
读出记录总数                    :                   3
读写失败总数                    :                   0

作者:Jeebiz  创建时间:2022-06-15 11:58
 更新时间:2024-07-10 22:56