简介

DataX 是阿里巴巴集团内被广泛使用的离线数据同步工具/平台,实现包括 MySQL、Oracle、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、DRDS 等各种异构数据源之间高效的数据同步功能。访问地址:https://github.com/alibaba/DataX

DataX阿里在开源的时候并未提供任何可视化界面,在使用的过程中需要将Json配置文件放到DataX的job路径下,随着业务的增加,配置文件不方便管理和迁移并且每次执行都需要记录命令。 目前DataX只支持单机版,多节点之间的协作不能控制,一款有友好的可视化界面,支持定时任务,支持分布式的数据同步利器,这就是 datax-web。访问地址:https://github.com/WeiYe-Jing/datax-web

环境说明

系统版本:CenetOS 7 最小化安装

Java版本:jdk-8u192-linux-x64.tar.gz

maven:apache-maven-3.6.3-bin.tar.gz

操作系统安装过程参考:Linux系统安装标准

系统要求

Language: Java 8(jdk版本建议1.8.201以上)

Python2.7(支持Python3需要修改替换datax/bin下面的三个python文件,替换文件在doc/datax-web/datax-python3下)

Environment:MacOS,Windows,Linux

Database:Mysql5.7

datax-web 功能介绍

1、通过Web构建DataX Json;

2、DataX Json保存在数据库中,方便任务的迁移,管理;

3、Web实时查看抽取日志,类似Jenkins的日志控制台输出功能;

4、DataX运行记录展示,可页面操作停止DataX作业;

5、支持DataX定时任务,支持动态修改任务状态、启动/停止任务,以及终止运行中任务,即时生效;

6、调度采用中心式设计,支持集群部署;

7、任务分布式执行,任务"执行器"支持集群部署;

8、执行器会周期性自动注册任务, 调度中心将会自动发现注册的任务并触发执行;

9、路由策略:执行器集群部署时提供丰富的路由策略,包括:第一个、最后一个、轮询、随机、一致性HASH、最不经常使用、最近最久未使用、故障转移、忙碌转移等;

10、阻塞处理策略:调度过于密集执行器来不及处理时的处理策略,策略包括:单机串行(默认)、丢弃后续调度、覆盖之前调度;

11、任务超时控制:支持自定义任务超时时间,任务运行超时将会主动中断任务;

12、任务失败重试:支持自定义任务失败重试次数,当任务失败时将会按照预设的失败重试次数主动进行重试;

13、任务失败告警;默认提供邮件方式失败告警,同时预留扩展接口,可方便的扩展短信、钉钉等告警方式;

14、用户管理:支持在线管理系统用户,存在管理员、普通用户两种角色;

15、任务依赖:支持配置子任务依赖,当父任务执行结束且执行成功后将会主动触发一次子任务的执行, 多个子任务用逗号分隔;

16、运行报表:支持实时查看运行数据,以及调度报表,如调度日期分布图,调度成功分布图等;

17、指定增量字段,配置定时任务自动获取每次的数据区间,任务失败重试,保证数据安全;

18、页面可配置DataX启动JVM参数;

19、数据源配置成功后添加手动测试功能;

20、可以对常用任务进行配置模板,在构建完JSON之后可选择关联模板创建任务;

21、jdbc添加hive数据源支持,可在构建JSON页面选择数据源生成column信息并简化配置;

22、优先通过环境变量获取DataX文件目录,集群部署时不用指定JSON及日志目录;

23、通过动态参数配置指定hive分区,也可以配合增量实现增量数据动态插入分区;

24、任务类型由原来DataX任务扩展到Shell任务、Python任务、PowerShell任务;

25、添加HBase数据源支持,JSON构建可通过HBase数据源获取hbaseConfig,column;

26、添加MongoDB数据源支持,用户仅需要选择collectionName即可完成json构建;

27、添加执行器CPU、内存、负载的监控页面;

28、添加24类插件DataX JSON配置样例;

29、公共字段(创建时间,创建人,修改时间,修改者)插入或更新时自动填充;

30、对swagger接口进行token验证;

31、任务增加超时时间,对超时任务kill datax进程,可配合重试策略避免网络问题导致的datax卡死。

下载 datax-web

git clone https://github.com/WeiYe-Jing/datax-web.git
mv datax-web /usr/local/

安装 DataX

下载并解压 DataX 到指定文件夹,完成后执行测试。

wget http://datax-opensource.oss-cn-hangzhou.aliyuncs.com/datax.tar.gz ./
tar zxvf datax.tar.gz
mv datax /usr/local
cd /usr/local/datax/bin
python datax.py ../job/job.json

创建数据库

创建数据库前先确认数据库版本是否满足系统要求。mysql 数据库版本低于5.57 的需要升级数据库。具体的数据库版本升级操作请参考:Mariadb 数据库版本升级

create database datax_web default character set utf8;
grant all privileges on datax_web.* to 'datax'@'localhost' identified by 'password';
flush privileges;
mysql -udatax -p -Ddatax_web < /usr/local/datax-web/doc/db/datax_web.sql

修改项目配置

修改 datax_admin 下的配置文件

vim /usr/local/datax-web/datax-admin/src/main/resources/application.yml


#数据源
datasource:
    username: datax
    password: password
    url: jdbc:mysql://localhost:3306/datax_web?serverTimezone=Asia/Shanghai&useLegacyDatetimeCode=false&useSSL=false&nullNamePatternMatchesAll=true&useUnicode=true&characterEncoding=UTF-8
   driver-class-name: com.mysql.jdbc.Driver

# 配置mybatis-plus打印slq日志
logging:
    level:
        com.wugui.datax.admin.mapper: error
    path: ./data/applogs/admin

修改datax_executor 下的配置文件

vim /usr/local/datax-web/datax-executor/src/main/resources/application.yml


datax:
    job:
        admin:
             ### datax-web admin address
            addresses: http://127.0.0.1:9080
        executor:
           appname: datax-executor
           ip:
           port: 9999
           ### job log path
           logpath: ./data/applogs/executor/jobhandler
           ### job log retention days
          logretentiondays: 30
      ### job, access token
      accessToken:

  executor:
     jsonpath: /tmp/executor/json/

  pypath: /usr/local/datax/bin/datax.py

启动项目

安装并配置 maven

具体的 maven 和 java 配置参照:java 和 maven 环境配置 https://wiki.waringid.me/x/pwAS

打包 jar 文件

mvn package -Dmaven.test.skip=true

启动 jar 文件

打包成功后分别将datax-admin、datax-executor模块target下datax-admin-2.1.1.jar、datax-executor-2.1.1.jar放到指定目录并启动。

java -Xmx1024M -Xms1024M -Xmn448M -XX:MaxMetaspaceSize=192M -XX:MetaspaceSize=192M -jar datax-admin-2.1.1.jar
java -Xmx1024M -Xms1024M -Xmn448M -XX:MaxMetaspaceSize=192M -XX:MetaspaceSize=192M -jar datax-executor-2.1.1.jar

页面访问

输入 http://192.168.xx.xx:9080/index.html#/dashboard 访问,初始用户名:admin/123456 登录


  • 无标签
写评论...