【DataX篇】DataX的两种部署方式以及DataX-Web可视化管理平台的搭建

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

💫《博主主页》:
   🔎 CSDN主页: 奈斯DB
   🔎 IF Club社区主页: 奈斯、
   🔎 微信公众号: 奈斯DB
🔥《擅长领域》:
   🗃️ 数据库:阿里云AnalyticDB(云原生分布式数据仓库)、Oracle、MySQL、SQLserver、NoSQL(Redis)
   🛠️ 运维平台与工具:Prometheus监控、DataX离线异构同步工具
💖如果觉得文章对你有所帮助,欢迎点赞收藏加关注💖

在这里插入图片描述

    这篇文章将系统的分享 DataX 的安装部署实践,详细拆解DataX的两种核心部署方式——二进制部署与源码编译部署,并深入探讨动态参数配置、并发度优化等关键调优技巧。🎯

    在此基础上,也将进一步介绍如何集成 DataX-Web可视化管控平台 ,以构建一个具备 统一调度、实时监控与高效管理 能力的企业级数据同步运维体系。🚀

   

DataX二进制、源码安装部署的 Github 地址:
https://github.com/alibaba/DataX/blob/master/userGuid.md
在这里插入图片描述
   

DataX-Web二进制、源码安装部署的 Github 地址:
https://github.com/WeiYe-Jing/datax-web
在这里插入图片描述

   
   

DataX全系列文章(实时更新 🔥 ):

序号文章
1【DataX篇】剖析离线全量异构同步工具DataX以及图形化界面DataX-Web:了解其核心架构设计以及功能上的限制
2【DataX篇】DataX的两种部署方式以及DataX-Web可视化管理平台的搭建
3【DataX篇】通过对比DTS、Canal/Debezium数据同步工具原理,探讨DataX的设计局限
4【DataX篇】MySQLReader插件介绍
5【DataX篇】MySQLWriter插件介绍
6【DataX篇】基于DataX-Web可视化管理平台实现各个数据源之间的数据同步
7【DataX篇】通过在DataX-Web配置的Oracle→MySQL同步案例,理解并发通道、分片字段、TaskGroup(任务组)、Task(子任务)

   


   

主机名IP地址配置系统描述
datax192.168.82.1334C 16GCentOS Linux 7.6DataX在执行多个同步任务的时候比较消耗内存,因此如果有多个同步任务需要分配的物理内存需要多一些
注意:DataX和DataX-Web的软件安装目录,以及相关其他插件都存储到了分配好的/data目录下,所以生产环境需要按照规划的数据盘进行存储。

   

一、二进制、源码方式安装

环境准备:

  1. Linux 操作系统: DataX部署在Linux上
  2. JDK(1.8 及其以上都可以,推荐 1.8): Oracle Java JDK下载链接,https://www.oracle.com/cn/java/technologies/downloads/
  3. Python(2 或者 3 都可以): 默认Linux上都会预装python2。redhat的yum镜像没有python3,CentOS的yum镜像是可以直接安装python3的。python官网链接,https://www.python.org/downloads/
  4. Apache Maven 3.x(只有源码编译安装需要): Apache Maven官网链接,https://maven.apache.org/download.cgi

   

1.1 二进制方式安装

1)进入到github官网的DataX主页:DataX
    下拉到“Quick Start”部分,然后点击下载
在这里插入图片描述
在这里插入图片描述
   
2)安装data所需的jdk依赖包

[root@mysqlha2 ~]# yum install -y java-1.8.0-openjdk-devel      ###此依赖包可以解决在启动datax-web时的“/data/DataX/datax-web-2.1.2/bin/../modules/datax-admin/bin/datax-admin.sh: line 143: jps: command not found”报错

   

3)登录到Linux服务器,解压DataX安装包到指定的目录下

[root@mysqlha2 software]# mkdir -p /data/DataX     ###创建DataX软件安装目录
[root@mysqlha2 software]# tar -zxvf datax.tar.gz -C /data/DataX

   
4)通过DataX提供的自测脚本,通过python命令测试一下能不能正常启动一个同步任务

python {YOUR_DATAX_HOME}/bin/datax.py {YOUR_DATAX_HOME}/job/job.json

# 例如:
python /data/DataX/datax/bin/datax.py /data/DataX/datax/job/job.json

### DataX 这个项目本身是用 Python2.7 进行开发的,因此需要使用 Python2.7 的版本进行执行。
在这里插入图片描述

   

踩坑问题总结

问题一:

  • 描述: 如果执行自检程序出现如下错误
[main] WARN  ConfigParser - 插件[streamreader,streamwriter]加载失败,1s后重试... Exception:Code:[Common-00], Describe:[您提供的配置文件存在错误信息,请检查您的作业配置 .] - 配置信息错误,您提供的配置文件[/usr/local/datax/plugin/reader/._drdsreader/plugin.json]不存在. 请检查您的配置文件.
[main] ERROR Engine -

经DataX智能分析,该任务最可能的错误原因是:
com.alibaba.datax.common.exception.DataXException: Code:[Common-00], Describe:[您提供的配置文件存在错误信息,请检查您的作业配置 .] - 配置信息错误,您提供的配置文件[/usr/local/datax/plugin/reader/._drdsreader/plugin.json]不存在. 请检查您的配置文件.
	at com.alibaba.datax.common.exception.DataXException.asDataXException(DataXException.java:26)
	at com.alibaba.datax.common.util.Configuration.from(Configuration.java:95)
	at com.alibaba.datax.core.util.ConfigParser.parseOnePluginConfig(ConfigParser.java:153)
	at com.alibaba.datax.core.util.ConfigParser.parsePluginConfig(ConfigParser.java:125)
	at com.alibaba.datax.core.util.ConfigParser.parse(ConfigParser.java:63)
	at com.alibaba.datax.core.Engine.entry(Engine.java:137)
	at com.alibaba.datax.core.Engine.main(Engine.java:204)
  • 解决方案: 将 plugin 目录下的所有的以 _ 开头的文件都删除即可
[root@mysqlha2 ~]# cd /data/DataX/datax/plugin        ### plugin 目录下是存放reader和writer插件的目录
[root@mysqlha2 plugin]# find ./* -type f -name ".*er" | xargs rm -rf

   

1.2 源码方式安装(了解即可)

安装步骤参考官方 github 详细介绍:DataX源码方式安装
   

1)下载DataX源码:

$ git clone git@github.com:alibaba/DataX.git

   
2)通过maven打包:

$ cd  {DataX_source_code_home}
$ mvn -U clean package assembly:assembly -Dmaven.test.skip=true
如果打包成功,日志显示如下:
[INFO] BUILD SUCCESS
[INFO] -----------------------------------------------------------------
[INFO] Total time: 08:12 min
[INFO] Finished at: 2015-12-13T16:26:48+08:00
[INFO] Final Memory: 133M/960M
[INFO] -----------------------------------------------------------------

    打包成功后的DataX包位于 {DataX_source_code_home}/target/datax/datax/ ,结构如下:

$ cd  {DataX_source_code_home}
$ ls ./target/datax/datax/
bin		conf		job		lib		log		log_perf	plugin		script		tmp

   

二、python 3 支持

    DataX 这个项目本身是用 Python2.7 进行开发的,因此需要使用 Python2.7 的版本进行执行。如果使用 python3 执行的话,可能会出现问题,因为 3 和 2 的语法差异还是比较大的。
    如果需要使用 python3 去执行数据同步的计划,需要修改 bin 目录下的三个 py 文件,将这三个文件中的如下部分修改即可:

[root@mysqlha2 ~]# cd /data/DataX/datax/bin
[root@mysqlha2 bin]# ll

在这里插入图片描述
   

Python 2 升级到 Python 3 时必须修改的两个核心语法变化——print 从语句变为函数,异常捕获语法从逗号改为 as 关键字:

  • print xxx 替换为 print(xxx)                    ### 打印语法变更
  • Exception, e 替换为 Exception as e      ### 异常捕获语法变更
       

同样的,通过DataX提供的自测脚本,通过python3命令测试一下能不能正常启动一个同步任务

python3 {YOUR_DATAX_HOME}/bin/datax.py {YOUR_DATAX_HOME}/job/job.json
      
# 例如:
python3 /data/DataX/datax/bin/datax.py /data/DataX/datax/job/job.json

### 虽然 python3 的语法变更,但是也向下兼容,同样可以使用 python2 执行
在这里插入图片描述

   

三、DataX动态传参

    DataX 同步数据的时候需要使用到自己设置的配置文件,其中可以定义同步的方案,通常为 json 的格式。在执行同步方案的时候,json文件中的channel、password、username等等都是静态的参数数据,有些场景下需要有一些动态的数据。例如:

  • 将 MySQL 的数据同步到 HDFS,多次同步的时候只是表的名字和字段不同。eg:比如MySQL中有一个订单表orders需要同步到HDFS中,那么第一次同步肯定是全量同步,将数据全量同步到今天,比如今天的日期是2025-06-30,之后的每天每时每秒订单表都在产生新的数据,那么之后就没有必要进行全量同步,只需要进行增量同步,如果在json文件写了where条件,比如where date=‘2025-07-01’,那么是进行了增量同步,但之后的每一天都需要修改这个where条件,非常的不智能。因此就需要使用到动态传参,让增量同步的where条件变的智能,自动进行调整。
  • 将 MySQL 的数据增量的同步到 HDFS 或者 Hive 中的时候,需要指定每一次同步的时间。

  •    

    这些时候,如果我们每一次都去写一个新的 json 文件将会非常麻烦,此时我们就可以使用 动态传参
    所谓的动态传参,就是在 json 的同步方案中,使用类似变量的方式来定义一些可以改变的参数。在执行同步方案的时候,可以指定这些参数具体的值。

   

3.1 动态传参的案例

{
 "job": {
   "content": [
     {
       "reader": {
         "name": "streamreader",
         "parameter": {
           "sliceRecordCount": $TIMES,
           "column": [
             {
               "type": "long",
               "value": "10"
             },
             {
               "type": "string",
               "value": "hello,你好,世界-DataX"
             }
           ]
         }
       },
       "writer": {
         "name": "streamwriter",
         "parameter": {
           "encoding": "UTF-8",
           "print": true
         }
       }
     }
   ],
   "setting": {
     "speed": {
       "channel": 1
      }
   }
 }
}

    在使用到同步方案的时候,可以使用 -D 来指定具体的参数的值。例如在上述的 json 中,我们设置了一个参数 TIMES,在使用的时候,可以指定 TIMES 的值,来动态的设置 sliceRecordCount 的值。

[root@mysqlha2 ~]# python3 /data/DataX/datax/bin/datax.py -p "-DTIMES=3" stream2stream.json

   

四、并发设置

  在 DataX 的处理流程中,Job 会被划分成为若干个 Task 并发执行,被不同的 TaskGroup 管理。在每一个 Task 的内部,都由 reader -> channel -> writer 的结构组成,其中 channel 的数量决定了并发度。那么 channel 的数量是怎么指定的?

  • 直接指定 channel 数量
  • 通过 Bps 计算 channel 数量
  • 通过 tps 计算 channel 数量
       

  下面对三种计算 channel 数量的方式进行一一介绍:

   

4.1 直接指定 channel 数量

    在同步方案的 json 文件中,我们可以设置 job.setting.speed.channel 来设置 channel 的数量。这是最直接的方式。在这种配置下,channel 的 Bps 为默认的 1MBps,即每秒传输 1MB 的数据。
   

在json文件中,指定channel数量的截图如下:
在这里插入图片描述

[root@mysqlha2 ~]# python3 /data/DataX/datax/bin/datax.py -p "-DTIMES=3" stream2stream.json

###DataX中默认一个TaskGroup(任务组)的并发数量为5,也就是channel,相关参数的定义在conf目录下的core.json文件中。可以看到如下分配了10个并发,每个并发都由 reader -> channel -> writer 的结构组成,10个task分成了2个TaskGroup(taskGroupId=[0]、taskGroupId=[1]),然后不同的TaskGroup下通过task执行(taskGroup[0] taskId[5]、taskGroup[1] taskId[0]…)
在这里插入图片描述
   
对上述的日志进行分析:一个Job被拆分成了两个任务组。因为DataX中默认一个TaskGroup(任务组)的并发数量为5,也就是channel,因此为了满足10个通道的需求,自动创建2个任务组
   
用建筑工地比喻这个场景,整个工程(Job):要搬10堆砖(10个任务),有10个工人(10个通道)。但工头决定:

  • 工地A(任务组0):派5个工人,负责搬砖堆1-5
  • 工地B(任务组1):派5个工人,负责搬砖堆6-10
       

两个工地同时开工,互不干扰!
   

  • 阶段1:任务切分
Job set Channel-Number to 10 channels.                   # 用户配置了10个通道(10个工人)
DataX Reader.Job [streamreader] splits to [10] tasks.    # 切分成10个任务(10堆砖)
DataX Writer.Job [streamwriter] splits to [10] tasks.    # Writer也对应10个任务
此时:计划用10个工人搬10堆砖(理想情况是11

   

  • 阶段2:任务组调度(关键变化!)
Scheduler starts [2] taskGroups.                     # 启动了2个任务组(2个工地)
taskGroupId=[0] start [5] channels for [5] tasks.    # 工地0:5个工人搬5堆砖
taskGroupId=[1] start [5] channels for [5] tasks.    # 工地1:5个工人搬5堆砖
发生了什么:DataX没有创建1个包含10个通道的大任务组,而是创建了2个任务组,每个包含5个通道。

   

  • 阶段3:任务执行
任务分配:
·任务组0(工地0):处理任务1, 4, ...(共5个任务)
·任务组1(工地1):处理任务6, ...(共5个任务)

任务执行:
taskGroup[0] taskId[1] attemptCount[1] is started    # 工地0的工人开始搬第1堆砖
taskGroup[1] taskId[6] attemptCount[1] is started    # 工地1的工人开始搬第6堆砖  
taskGroup[0] taskId[4] attemptCount[1] is started    # 工地0的另一个工人开始搬第4堆砖
......

   

4.2 通过 Bps 计算 channel 数量

    Bps(Byte per second)是一种非常常见的数据传输速率的表示,在 DataX 中,可以通过参数设置来限制总 Job 的 Bps 以及单个 channel 的Bps,来达到限速和 channel 数量计算的效果。
在这里插入图片描述

  • Job Bps: 对一个 Job 进行整体的限速,可以通过 job.setting.speed.byte 进行设置(单位字节)。
  • channel Bps: 对单个 channel 的限速,可以通过core.transport.channel.speed.byte 进行设置(单位字节)。和上面的Job Bps必须同时设置。
       

在json文件中,指定Job Bps的截图如下:
在这里插入图片描述
   

在json文件中,指定channel Bps的截图如下,需要注意core和job是平级参数
在这里插入图片描述

[root@mysqlha2 ~]# python3 /data/DataX/datax/bin/datax.py -p "-DTIMES=3" stream2stream.json

###DataX中默认一个TaskGroup(任务组)的并发数量为5,也就是channel,相关参数的定义在conf目录下的core.json文件中。根据计算公式(channel=500/50)看到如下分配了10个并发,每个并发都由 reader -> channel -> writer 的结构组成,10个task分成了2个TaskGroup(taskGroupId=[0]、taskGroupId=[1]),然后不同的TaskGroup下通过task执行(taskGroup[0] taskId[2]、taskGroup[1] taskId[6]…)
在这里插入图片描述

   

4.3 通过 tps 计算 channel 数量

    tps(transcation per second)是一种很常见的数据传输速率的表示,在 DataX 中,可以通过参数设置来限制总 Job 的 tps 以及单个 channel 的 tps,来达到限速和 channel 数量计算的效果。
在这里插入图片描述

  • Job tps: 对一个 Job 进行整体的限速,可以通过 job.setting.speed.record 进行设置(单位每秒传输N条数据)。
  • channel tps: 对单个 channel 的限速,可以通过 core.transport.channel.speed.record 进行设置(单位每秒传输N条数据)。和上面的Job tps必须同时设置。

   
在json文件中,指定Job tps的截图如下:
在这里插入图片描述
   

在json文件中,指定channel tps的截图如下,需要注意core和job是平级参数
在这里插入图片描述

[root@mysqlha2 ~]# python3 /data/DataX/datax/bin/datax.py -p "-DTIMES=3" stream2stream.json

###DataX中默认一个TaskGroup(任务组)的并发数量为5,也就是channel,相关参数的定义在conf目录下的core.json文件中。根据计算公式(channel=500/100)看到如下分配了5个并发,每个并发都由 reader -> channel -> writer 的结构组成,5个task分成了1个TaskGroup(taskGroupId=[0]),然后不同的TaskGroup下通过task执行(taskGroup[0] taskId[0]、taskGroup[0] taskId[1]…)
在这里插入图片描述

   

4.4 如果同时配置了如上的多种方式,那么优先级如下:

  • 如果同时配置了 Bps 和 tps 限制,以小的为准。
  • 只有在 Bps 和 tps 都没有配置的时候,才会以 channel 数量配置为准。

   

在json文件中,同时配置了直接指定 channel 数量、通过 Bps 计算 channel 数量、通过 tps 计算 channel 数量这三种方式
在这里插入图片描述

[root@mysqlha2 ~]# python3 /data/DataX/datax/bin/datax.py -p "-DTIMES=3" stream2stream.json

###DataX中默认一个TaskGroup(任务组)的并发数量为5,也就是channel,相关参数的定义在conf目录下的core.json文件中。根据优先级并发将采用“通过 tps 计算 channel 数量”,原因参考上面的优先级。根据计算公式(channel=500/100)看到如下分配了5个并发,每个并发都由 reader -> channel -> writer 的结构组成,5个task分成了1个TaskGroup(taskGroupId=[0]),然后不同的TaskGroup下通过task执行(taskGroup[0] taskId[2]、taskGroup[0] taskId[1]…)
在这里插入图片描述

   

五、二进制、源码方式部署DataX-Web

环境准备:

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

   

5.1 二进制方式安装

1)进入到github官网的DataX-Web主页: https://github.com/WeiYe-Jing/datax-web
    下拉到“Quick Start”部分,点击“一键部署”,然后就进入到了DataX-Web的安装部署文档界面
在这里插入图片描述
    下载官方提供的版本tar版本包
在这里插入图片描述
在这里插入图片描述
   
   
2)在安装部署前先部署MySQL数据库
    datax-web需要将一些元数据信息保存到数据库。MySQL的安装部署可以自行安装哦,这里就不写部署步骤了
   
   
3)登录到Linux服务器,解压Data-Web包,和datax部署在一个目录下

[root@mysqlha2 software]# tar -zxvf datax-web-2.1.2.tar.gz -C /data/DataX 

###/data/DataX是datax软件的安装目录,将Data-Web部署和datax在一个目录下
   
   

4)执行一键安装脚本
    进入解压后的目录,找到bin目录下面的install.sh文件,进行交互式安装,则直接执行

[root@mysqlha2 software]# cd /data/DataX/datax-web-2.1.2/
[root@mysqlha2 datax-web-2.1.2]# ./bin/install.sh

###进行交互式安装,如果你的服务上安装有mysql命令,在执行安装脚本的过程中则会出现以下提醒。按照提示输入数据库地址,端口号,用户名,密码以及数据库名称;并且datax-web需要将一些元数据信息保存到数据库中,按照提示执行datax_web.sql数据库初始化脚本

2026-01-25 13:29:55.970 [INFO] (4684)  ####### Start To Uncompress Packages ######
2026-01-25 13:29:55.974 [INFO] (4684) Uncompressing....
Do you want to decompress this package: [datax-admin_2.1.2_1.tar.gz]? (Y/N)y         ###是否要解压缩此包:[datax-admin_2.1.2_1.tar.gz],选择yes
2026-01-25 13:29:57.617 [INFO] (4684)  Uncompress package: [datax-admin_2.1.2_1.tar.gz] to modules directory
Do you want to decompress this package: [datax-executor_2.1.2_1.tar.gz]? (Y/N)y      ###是否要解压缩此包:[datax-executor_2.1.2_1.tar.gz],选择yes
2026-01-25 13:30:00.521 [INFO] (4684)  Uncompress package: [datax-executor_2.1.2_1.tar.gz] to modules directory
2026-01-25 13:30:00.855 [INFO] (4684)  ####### Finish To Umcompress Packages ######
Scan modules directory: [/data/DataX/datax-web-2.1.2/bin/../modules] to find server under dataxweb
2026-01-25 13:30:00.862 [INFO] (4684)  ####### Start To Install Modules ######
2026-01-25 13:30:00.865 [INFO] (4684) Module servers could be installed:
[datax-admin]  [datax-executor] 
Do you want to confiugre and install [datax-admin]? (Y/N)y      ###是否确认并安装[datax-admin],选择yes
2026-01-25 13:30:02.085 [INFO] (4684)  Install module server: [datax-admin]
Start to make directory
2026-01-25 13:30:02.120 [INFO] (4740)  Start to build directory
2026-01-25 13:30:02.124 [INFO] (4740) Directory or file: [/data/DataX/datax-web-2.1.2/modules/datax-admin/bin/../logs] has been exist
2026-01-25 13:30:02.128 [INFO] (4740) Directory or file: [/data/DataX/datax-web-2.1.2/modules/datax-admin/bin/../conf] has been exist
2026-01-25 13:30:02.132 [INFO] (4740) Directory or file: [/data/DataX/datax-web-2.1.2/modules/datax-admin/bin/../data] has been exist
end to make directory
#############如下是初始化数据库部分############
Start to initalize database
2026-01-25 13:30:02.143 [INFO] (4740)  Scan out mysql command, so begin to initalize the database
Do you want to initalize database with sql: [/data/DataX/datax-web-2.1.2/bin/db/datax_web.sql]? (Y/N)y     ###是否执行数据库初始化脚本:[/data/DataX/datax-web-2.1.2/bin/db/datax_web.sql],选择yes
Please input the db host(default: 127.0.0.1):            ###数据库ip地址
Please input the db port(default: 3306):                   ###数据库端口
Please input the db username(default: root):            ###数据库连接用户
Please input the db password(default: ): 123456       ###数据库连接用户的密码
Please input the db name(default: dataxweb)           ###数据库名
mysql: [Warning] Using a password on the command line interface can be insecure.
Do you want to confiugre and install [datax-executor]? (Y/N)y       ###是否确认并安装[datax executor],选择yes
2026-01-25 13:30:14.938 [INFO] (4684)  Install module server: [datax-executor]
2026-01-25 13:30:14.978 [INFO] (4796)  Start to build directory
2026-01-25 13:30:14.982 [INFO] (4796) Directory or file: [/data/DataX/datax-web-2.1.2/modules/datax-executor/bin/../logs] has been exist
2026-01-25 13:30:14.986 [INFO] (4796) Directory or file: [/data/DataX/datax-web-2.1.2/modules/datax-executor/bin/../conf] has been exist
2026-01-25 13:30:14.989 [INFO] (4796) Directory or file: [/data/DataX/datax-web-2.1.2/modules/datax-executor/bin/../data] has been exist
2026-01-25 13:30:14.993 [INFO] (4796) Directory or file: [/data/DataX/datax-web-2.1.2/modules/datax-executor/bin/../json] has been exist
2026-01-25 13:30:14.997 [INFO] (4684)  ####### Finish To Install Modules ######

注意:如上是交互式安装,在交互模式下,对各个模块的package压缩包的解压以及configure配置脚本的调用,都会请求用户确认,可根据提示查看是否安装成功,如果没有安装成功,可以重复尝试; 如果不想使用交互模式,跳过确认过程,则执行 --force 命令安装:./bin/install.sh --force

   
    

进入到MySQL数据库中,查看创建的数据库

[root@mysqlha2 db]# mysql -uroot -p123456 -h127.0.0.1 -P3306
mysql> use dataxweb
mysql> show tables;    ###datax_web.sql数据库初始化脚本执行成功

在这里插入图片描述

   

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

[root@mysqlha2 ~]# cd /data/DataX/datax-web-2.1.2/
[root@mysqlha2 datax-web-2.1.2]# vi ./modules/datax-admin/conf/bootstrap.properties

###按照提示输入数据库地址,端口号,用户名,密码以及数据库名称
在这里插入图片描述

   
   

5)配置邮件服务(可跳过)
    在项目目录(/data/DataX/datax-web-2.1.2/)下/modules/datax-admin/bin/env.properties 配置邮件服务。data-web提供了失败告警功能,如果某一个任务执行失败,可以通过配置的邮件服务给指定邮箱发送一封“执行失败“的邮件

MAIL_USERNAME=""
MAIL_PASSWORD=""

在这里插入图片描述

   
   

6)指定PYTHON_PATH的路径

[root@mysqlha2 ~]# cd /data/DataX/datax-web-2.1.2/
[root@mysqlha2 datax-web-2.1.2]# vi ./modules/datax-executor/bin/env.properties

修改如下:

### 执行datax的python脚本地址
PYTHON_PATH=/data/DataX/datax/bin/datax.py        ###调用指定DataX安装目录下的datax.py脚本

### 保持和datax-admin服务的端口一致;默认是9527,如果没改datax-admin的端口,可以忽略
DATAX_ADMIN_PORT=

在这里插入图片描述
   
   

7)一键启动和一键关闭DataX-Web服务

  • 一键启动所有服务
[root@mysqlha2 datax-web-2.1.2]# cd /data/DataX/datax-web-2.1.2/
[root@mysqlha2 datax-web-2.1.2]# ./bin/start-all.sh

###中途可能发生部分模块启动失败或者卡住,可以退出重复执行,如果需要改变某一模块服务端口号,则 vi ./modules/{module_name}/bin/env.properties 找到SERVER_PORT配置项,改变它的值即可。 当然也可以单一地启动某一模块服务:./bin/start.sh -m {module_name}

   

  • 一键取消所有服务
[root@mysqlha2 datax-web-2.1.2]# cd /data/DataX/datax-web-2.1.2/
[root@mysqlha2 datax-web-2.1.2]# ./bin/stop-all.sh

###当然也可以单一地停止某一模块服务:./bin/stop.sh -m {module_name}

   
   

8)查看服务(注意!注意!)
    在Linux环境下使用 JPS 命令,查看是否出现DataXAdminApplicationDataXExecutorApplication进程,如果存在这表示项目运行成功。
    如果项目启动失败,请检查启动日志: modules/datax-admin/bin/console.out或者modules/datax-executor/bin/console.out注意:脚本使用的都是bash指令集,如若使用sh调用脚本,可能会有未知的错误

[root@mysqlha2 datax-web-2.1.2]# jps

在这里插入图片描述

   
   

9)运行
    部署完成后,在浏览器中输入 http://ip:port/index.html 就可以访问对应的主界面(ip为datax-admin部署所在服务器ip,port为datax-admin 指定的运行端口,默认9527)
在这里插入图片描述
    输入用户名 admin 密码 123456 就可以直接访问系统
在这里插入图片描述
   
   

10) 运行日志
    部署完成之后,在modules/对应的项目/data/applogs下(用户也可以自己指定日志,修改application.yml 中的logpath地址即可),用户可以根据此日志跟踪项目实际启动情况。
    如果执行器启动比admin快,执行器会连接失败,日志报"拒绝连接"的错误,一般是先启动admin,再启动executor,30秒之后会重连,如果成功请忽略这个异常。

   

5.2 编译打包安装(了解即可)

安装步骤参考官方github详细介绍:DataX-Web 编译打包方式安装

   
   

1) 编译打包(官方提供的tar包跳过)
直接从Git上面获得源代码,在项目的根目录下执行如下命令

$ mvn clean install 

执行成功后将会在工程的build目录下生成安装包

$ build/datax-web-{VERSION}.tar.gz

    至此,从安装部署到Web管理平台搭建,一个高效可控的DataX同步体系已搭建完成。如在部署过程中遇到任何问题,欢迎在评论区分享交流!💡

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奈斯DB

打赏到账,我飘啦~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值