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

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.xdnf.cn/news/9504.html

相关文章:

  • 【AI】Spring AI MCP Server 三种实现方式的区别
  • JWT安全:弱签名测试.【实现越权绕过.】
  • C++ 异步编程与网络编程:工具、协议的层次与协同
  • 深度解析 Dockerfile 配置:构建高效轻量的FastAPI 应用镜像
  • 【Bluedriod】蓝牙协议栈 btm_init 源码解析
  • pycharm找不到高版本conda问题
  • 酒店用品源头厂家推荐
  • Building Android Kernels with Bazel
  • 五、web安全--XSS漏洞(1)--XSS漏洞利用全过程
  • Redis 缓存穿透、缓存雪崩、缓存击穿分别是什么?
  • Docker学习笔记:基础知识
  • 友达光电12.1寸液晶屏G121XN01 V001工控屏
  • 浏览器指纹科普 | 分辨率指纹是什么?
  • AMBA-AHB总线的基本操作和基本传输类型
  • B3694 数列离散化
  • python实战项目71:基于Python的US News世界大学排名数据爬取
  • 科技赋能音乐,指北科技新品闪耀广州国际乐器展
  • 【QueryServer】dbeaver使用phoenix连接Hbase(轻客户端方式)
  • 从0到1:某智慧园区数字孪生项目的技术选型复盘
  • Spring MVC极简入门:从@Reuest到Postman的全链路开发
  • 物流项目第九期(MongoDB的应用之作业范围)
  • neo4j删除所有数据
  • 常规算法学习
  • Flink 状态管理深度解析:类型与后端的全面探索
  • GNU AS汇编器的.align对齐
  • 多线程和并发之线程
  • jmeter对数据库进行单独压测
  • Spring Boot 整合 JdbcTemplate,JdbcTemplate 与 MyBatis 的区别
  • Spring AI 集成多个大语言模型
  • Android --- ObjectAnimator 和 TranslateAnimation有什么区别