当前位置: 首页 > article >正文

Docker快速部署数据同步工具DataX-Web

笔者最近有需求需要进行数据同步,目前确认DataX-Web适合快速搭建使用,满足基本需求。以此记录搭建Datax-Web过程和解决的坑。

一、启动MySQL容器

(1)首先,我们运行一个支撑DataX-Web运行的MySQL容器。

docker run --name mysql57 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7

(2)在该MySQL,创建 datax数据库,并执行SQL语句。

datax-web/bin/db/datax_web.sql at master · WeiYe-Jing/datax-web · GitHub

二、启动DataX-Web容器

1、DataX-Web镜像拉取

使用的镜像是网上找到用得比较多的。

docker pull linshellfeng/datax_web:3.0.1

2、创建Docker文件挂载目录

(1)找一个地方存取映射,这是一些常改动的配置文件。

mkdir -p ~/code/docker/datax/datax-admin/conf

(2)下载datax.tar.gz到挂载目录conf,后续用以替换。

下载地址:https://datax-opensource.oss-cn-hangzhou.aliyuncs.com/202308/datax.tar.gz

3、配置文件获取和处理

(1)先创建临时容器用于获取配置文件

docker run --name datax-web -p 9527:9527 -d linshellfeng/datax_web:3.0.1 

 (2)从容器内复制datax-web的运行mysql配置文件

docker cp datax-web:/home/datax/datax-web-2.1.2/modules/datax-admin/conf/bootstrap.properties ~/code/docker/datax/datax-admin/conf/bootstrap.properties 

(3)停用并删除临时容器

docker stop datax-webdocker rm datax-web

(4)编辑bootstart.propertis 修改对应datax-web需要的数据库

# Database
DB_HOST=mysql57
DB_PORT=3306
DB_DATABASE=datax
DB_USERNAME=root
DB_PASSWORD=root

4、启动容器访问

docker run -p 9527:9527 --name datax-web -v ~/code/docker/datax/datax-admin/conf/bootstrap.properties:/home/datax/datax-web-2.1.2/modules/datax-admin/conf/bootstrap.properties -d linshellfeng/datax_web:3.0.1

5、替换DataX为最新版

(1)datax压缩包复制到容器里。

docker cp ~/code/docker/datax/datax-admin/conf/datax.tar.gz datax-web:/home/datax/datax.tar.gz

(2)删除容器的datax整个文件夹,路径:/home/datax/datax,最好备份原先的/home/datax/datax

# 备份
cp -r datax datax_backup
# 删除
rm -rf datax


(3)解压到路径/home/datax/下。

tar -zxvf datax.tar.gz -C /home/datax/

6、core配置文件修改

(1)进入编写

vi /home/datax/datax/conf/core.json

(2)修改core->transport->channel->speed->byte为2000000

三、容器网络联通 

(1)创建一个自定义 bridge 网络,容器可以通过容器名互相访问

docker network create datax-net

(2)网络联通

# 关联到Datax-Web的运行Mysql容器
docker network connect datax-net mysql57
# 关联到Datax-Web容器
docker network connect datax-net datax-web

四、访问Datax-Web

上面的MySQL,我们的执行SQL有一个默认用户,可以用于直接登录

(1)地址:http://127.0.0.1:9527/index.html

(2)账号:admin

(3)密码:123456

五、遇见的坑

具体的使用网上资料也很多,Datax-Web的使用这里不赘述了。

1、坑点描述

问题出现的点是在任务管理里,我们创建了一个任务,手动执行后出现错误:

ReturnT:ReturnT [code=500, msg=command exit value(1) is failed, content=null]

更具体的内容如下:

2025-01-14 16:39:20 [JobThread.run-130] <br>----------- datax-web job execute start -----------<br>----------- Param:
2025-01-14 16:39:20 [BuildCommand.buildDataXParam-100] ------------------Command parameters:
2025-01-14 16:39:20 [ExecutorJobHandler.execute-57] ------------------DataX process id: 967
2025-01-14 16:39:20 [ProcessCallbackThread.callbackLog-186] <br>----------- datax-web job callback finish.
2025-01-14 16:39:20 [AnalysisStatistics.analysisStatisticsLog-53] 
2025-01-14 16:39:20 [AnalysisStatistics.analysisStatisticsLog-53] DataX (DATAX-OPENSOURCE-3.0), From Alibaba !
2025-01-14 16:39:20 [AnalysisStatistics.analysisStatisticsLog-53] Copyright (C) 2010-2017, Alibaba Group. All Rights Reserved.
2025-01-14 16:39:20 [AnalysisStatistics.analysisStatisticsLog-53] 
2025-01-14 16:39:20 [AnalysisStatistics.analysisStatisticsLog-53] 
2025-01-14 16:39:21 [AnalysisStatistics.analysisStatisticsLog-53] SLF4J: Class path contains multiple SLF4J bindings.
2025-01-14 16:39:21 [AnalysisStatistics.analysisStatisticsLog-53] SLF4J: Found binding in [jar:file:/home/datax/datax/lib/slf4j-log4j12-1.6.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
2025-01-14 16:39:21 [AnalysisStatistics.analysisStatisticsLog-53] SLF4J: Found binding in [jar:file:/home/datax/datax/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
2025-01-14 16:39:21 [AnalysisStatistics.analysisStatisticsLog-53] SLF4J: Found binding in [jar:file:/home/datax/datax/lib/logback-classic-1.0.13.jar!/org/slf4j/impl/StaticLoggerBinder.class]
2025-01-14 16:39:21 [AnalysisStatistics.analysisStatisticsLog-53] SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
2025-01-14 16:39:21 [AnalysisStatistics.analysisStatisticsLog-53] SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
2025-01-14 16:39:21 [AnalysisStatistics.analysisStatisticsLog-53] log4j:WARN No appenders could be found for logger (com.alibaba.datax.common.statistics.VMInfo).
2025-01-14 16:39:21 [AnalysisStatistics.analysisStatisticsLog-53] log4j:WARN Please initialize the log4j system properly.
2025-01-14 16:39:21 [AnalysisStatistics.analysisStatisticsLog-53] log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
2025-01-14 16:39:21 [JobThread.run-165] <br>----------- datax-web job execute end(finish) -----------<br>----------- ReturnT:ReturnT [code=500, msg=command exit value(1) is failed, content=null]
2025-01-14 16:39:21 [TriggerCallbackThread.callbackLog-186] <br>----------- datax-web job callback finish.

2、坑点解决

我们在该issue获得灵感(该issue也有笔者的回复):

https://github.com/WeiYe-Jing/datax-web/issues/687

该issue也有具体的解决方案,我也已经在第二步【启动DataX-Web容器】处理了,这边是做一个记录总结。

六、参考命令

1、日志查看

(1)容器内查看DataX-Web错误日志(最近100行)

tail -n 100 /home/datax/datax-web-2.1.2/modules/datax-admin/bin/console.out
http://www.lryc.cn/news/2397305.html

相关文章:

  • 从零开始的云计算生活——第十四天,困难重重,安全管理。
  • 迁移学习模型构建指南(Python实现)
  • 【设计模式-4.6】行为型——状态模式
  • 【LeetCode 热题100】动态规划实战:打家劫舍、完全平方数与零钱兑换(LeetCode 198 / 279 / 322)(Go语言版)
  • 换ip是换网络的意思吗?怎么换ip地址
  • 【软件】在 macOS 上安装 MySQL
  • 手机归属地查询接口如何用Java调用?
  • 随笔20250530 C# 整合 IC卡读写技术解析与实现
  • 循环神经网络(RNN):为什么它能处理时序数据?它真的能减轻过拟合吗?
  • JVM与JMM深度解析:从Java 8到Java 21的演进
  • 基于爬取的典籍数据重新设计前端界面
  • 基于C++的IOT网关和平台5:github项目ctGateway开发指南
  • 揭秘 NextJS Script 组件
  • 网络安全防御指南:全方位抵御暴力破解攻击
  • 【C++/Linux】TinyWebServer前置知识之IP协议详解
  • mac安装brew时macos无法信任ruby的解决方法
  • Codeforces Round 1028 (Div. 2)(A-D)
  • 记录一个梦,借助大语言模型图片生成
  • android binder(二)应用层编程实例
  • HTML 等价字符引用:系统化记忆指南
  • 【深度学习】17. 深度生成模型:DCGAN与Wasserstein GAN公式深度推导
  • Ubuntu终端性能监视工具
  • 设计模式——命令设计模式(行为型)
  • 鸿蒙OSUniApp智能商品展示实战:打造高性能的动态排序系统#三方框架 #Uniapp
  • 03 APP 自动化-定位元素工具元素定位
  • PABD 2025:大数据与智慧城市管理的融合之道
  • Golang持续集成与自动化测试和部署
  • 三套知识系统的实践比较:Notion、Confluence 与 Gitee Wiki
  • mysql离线安装教程
  • OpenGL 3D 编程