Bootstrap

DataX及DataX-Web部署

DataX及DataX Web部署

相关链接:

  1. DataX:https://github.com/alibaba/DataX
  2. DataX文档:https://github.com/alibaba/DataX/blob/master/userGuid.md
  3. DataX Web:https://github.com/WeiYe-Jing/datax-web
  4. DataX Web文档:https://github.com/WeiYe-Jing/datax-web/blob/master/doc/datax-web/datax-web-deploy.md

1. 部署DataX

部署需求:

  1. 下载DataX工具包:DataX下载地址

  2. 将下载到的DataX上传到服务器,解压后,进入bin目录,即可运行同步作业:

    # 我将DataX上传到服务器的 /data/module 目录
    cd /data/module
    
    tar -zxvf datax.tar.gz 
    
    # 运行自检脚本测试
    python /data/module/datax/bin/datax.py /data/module/datax/job/job.json 
    
  3. 修改core.json文件

    后期在执行同步作业时,会报错bps限速问题,需要修改core.json配置文件。

    com.alibaba.datax.common.exception.DataXException: Code:[Framework-03], Description:[DataX引擎配置错误,该问题通常是由于DataX安装错误引起,请联系您的运维解决 .].  - 在有总bps限速条件下,单个channel的bps值不能为空,也不能为非正数
    	at com.alibaba.datax.common.exception.DataXException.asDataXException(DataXException.java:30) ~[datax-common-0.0.1-SNAPSHOT.jar:na]
    	at com.alibaba.datax.core.job.JobContainer.adjustChannelNumber(JobContainer.java:430) ~[datax-core-0.0.1-SNAPSHOT.jar:na]
    	at com.alibaba.datax.core.job.JobContainer.split(JobContainer.java:387) ~[datax-core-0.0.1-SNAPSHOT.jar:na]
    	at com.alibaba.datax.core.job.JobContainer.start(JobContainer.java:117) ~[datax-core-0.0.1-SNAPSHOT.jar:na]
    	at com.alibaba.datax.core.Engine.start(Engine.java:86) [datax-core-0.0.1-SNAPSHOT.jar:na]
    	at com.alibaba.datax.core.Engine.entry(Engine.java:168) [datax-core-0.0.1-SNAPSHOT.jar:na]
    	at com.alibaba.datax.core.Engine.main(Engine.java:201) [datax-core-0.0.1-SNAPSHOT.jar:na]
    

    解决方案:

    vim /data/module/datax/conf/core.json
    
    # core -> transport -> channel -> speed -> byte 默认为-1,修改为正数,例如2000000
    "core": {
            "dataXServer": {
                "address": "http://localhost:7001/api",
                "timeout": 10000,
                "reportDataxLog": false,
                "reportPerfLog": false
            },
            "transport": {
                "channel": {
                    "class": "com.alibaba.datax.core.transport.channel.memory.MemoryChannel",
                    "speed": {
                        "byte": 2000000,
                        "record": -1
                    },
                    "flowControlInterval": 20,
                    "capacity": 512,
                    "byteCapacity": 67108864
                },
                "exchanger": {
                    "class": "com.alibaba.datax.core.plugin.BufferedRecordExchanger",
                    "bufferSize": 32
                }
            },
    
    

2. 部署DataX Web

部署需求:

  • MySQL (5.5+) 必选,对应客户端可以选装, Linux服务上若安装mysql的客户端可以通过部署脚本快速初始化数据库
  • JDK (1.8.0_xxx) 必选
  • DataX 必选
  • Python (2.x) (支持Python3需要修改替换datax/bin下面的三个python文件,替换文件在doc/datax-web/datax-python3下)
    必选,主要用于调度执行底层DataX的启动脚本,默认的方式是以Java子进程方式执行DataX,用户可以选择以Python方式来做自定义的改造
  1. 下载DataX Web安装包:点击下载 提取码:cpsk

  2. 将安装包上传到服务器并解压

    # 我将安装包上传到服务器的 /data/module 目录
    cd /data/module
    
    tar -zxvf datax-web-2.1.2.tar.gz
    
    # 执行一键安装脚本
    cd /data/module/datax-web-2.1.2/bin
    ./install.sh
    

    执行安装脚本时,一路选择y,直到初始化数据库时,配置mysql连接

    2024-06-25 16:43:28.466 [INFO] (2766132)  Scan out mysql command, so begin to initalize the database
    Do you want to initalize database with sql: [/data/module/datax-web-2.1.2/bin/db/datax_web.sql]? (Y/N)y
    Please input the db host(default: 127.0.0.1): 
    Please input the db port(default: 3306): 
    Please input the db username(default: root): 
    Please input the db password(default: ): 
    Please input the db name(default: dataxweb)
    

    如果服务上并没有安装mysql命令,则可以取用目录下/bin/db/datax-web.sql脚本去手动执行,完成后修改相关配置文件:

    vim ./modules/datax-admin/conf/bootstrap.properties
    #Database
    #DB_HOST=
    #DB_PORT=
    #DB_USERNAME=
    #DB_PASSWORD=
    #DB_DATABASE=
    
  3. 一键启动所有服务

    cd /data/module/datax-web-2.1.2/bin
    ./start-all.sh 
    

    在Linux环境下使用JPS命令,查看是否出现DataXAdminApplication和DataXExecutorApplication进程,如果存在这表示项目运行成功.

    如果项目启动失败,请检查启动日志:modules/datax-admin/bin/console.out或者modules/datax-executor/bin/console.out

    如果需要修改端口。在/modules/datax-admin/bin/env.properties和/modules/datax-executor/bin/env.properties中修改

  4. web 访问测试:

    http://ip:9527/index.html

    用户名:admin,密码:123456

;