- 由 虚拟的现实创建于10月 12, 2023 需要 3 分钟阅读时间
简介
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 配置参照:0201-java 和 maven 环境配置 https://wiki.myj.com.cn/x/GoBOAQ
打包 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 登录
- 无标签