DataX 的两种部署方式以及 DataX-Web 可视化管理平台的搭建
环境准备
- Linux 操作系统:DataX 部署在 Linux 上。
- JDK(1.8 及其以上都可以,推荐 1.8):Oracle Java JDK。
- Python(2 或者 3 都可以):默认 Linux 上都会预装 python2。RedHat 的 yum 镜像没有 python3,CentOS 的 yum 镜像是可以直接安装 python3 的。
- Apache Maven 3.x:只有源码编译安装需要。
1.1 二进制方式安装
- 进入 GitHub 官网的 DataX 主页,下拉到'Quick Start'部分,然后下载。
- 安装 data 所需的 jdk 依赖包。
- 登录到 Linux 服务器,解压 DataX 安装包到指定的目录下。
- 通过 DataX 提供的自测脚本,通过 python 命令测试一下能不能正常启动一个同步任务。
注意:DataX 这个项目本身是用 Python2.7 进行开发的,因此需要使用 Python2.7 的版本进行执行。
踩坑问题总结
问题一:
- 描述:如果执行自检程序出现错误。
- 解决方案:将 plugin 目录下的所有的以
_开头的文件都删除即可。
1.2 源码方式安装
安装步骤参考官方 GitHub 详细介绍:DataX 源码方式安装
- 下载 DataX 源码。
- 通过 maven 打包。如果打包成功,日志显示如下:
- 打包成功后的 DataX 包位于
{DataX_source_code_home}/target/datax/datax/,结构如下:
- 打包成功后的 DataX 包位于
Python 3 支持
DataX 这个项目本身是用 Python2.7 进行开发的,因此需要使用 Python2.7 的版本进行执行。如果使用 python3 执行的话,可能会出现问题,因为 3 和 2 的语法差异还是比较大的。
如果需要使用 python3 去执行数据同步的计划,需要修改 bin 目录下的三个 py 文件,将这三个文件中的如下部分修改即可:
- print 从语句变为函数:
print xxx替换为print(xxx)。 - 异常捕获语法变更:
Exception, e替换为Exception as e。
同样的,通过 DataX 提供的自测脚本,通过 python3 命令测试一下能不能正常启动一个同步任务。
虽然 python3 的语法变更,但是也向下兼容,同样可以使用 python2 执行。
DataX 动态传参
DataX 同步数据的时候需要使用到自己设置的配置文件,其中可以定义同步的方案,通常为 json 的格式。在执行同步方案的时候,json 文件中的 channel、password、username 等等都是静态的参数数据,有些场景下需要有一些动态的数据。
例如:将 MySQL 的数据同步到 HDFS,多次同步的时候只是表的名字和字段不同。比如 MySQL 中有一个订单表 orders 需要同步到 HDFS 中,那么第一次同步肯定是全量同步,将数据全量同步到今天,比如今天的日期是 2025-06-30,之后的每天每时每秒订单表都在产生新的数据,那么之后就没有必要进行全量同步,只需要进行增量同步,如果在 json 文件写了 where 条件,比如 where date='2025-07-01',那么是进行了增量同步,但之后的每一天都需要修改这个 where 条件,非常的不智能。因此就需要使用到动态传参,让增量同步的 where 条件变的智能,自动进行调整。


