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
相关文章:

Docker快速部署数据同步工具DataX-Web
笔者最近有需求需要进行数据同步,目前确认DataX-Web适合快速搭建使用,满足基本需求。以此记录搭建Datax-Web过程和解决的坑。 一、启动MySQL容器 (1)首先,我们运行一个支撑DataX-Web运行的MySQL容器。 docker run --…...

从零开始的云计算生活——第十四天,困难重重,安全管理。
一故事背景 在前面的基本无操作内容后,来到了大头内容,安全管理!其中的防火墙相关的内容更是重中之重,要好好掌握,熟练运用。 二SELinux安全上下文 1SELinux 简介 a. SELinux(Security-Enhanced Linux&…...
迁移学习模型构建指南(Python实现)
迁移学习模型构建指南(Python实现) 一、迁移学习概述 迁移学习是一种机器学习方法,通过将预训练模型的知识迁移到新任务中,显著提升模型性能和训练效率。其核心思想是:模型在大型数据集上学习到的通用特征(如边缘、纹理、形状)可被复用至相关任务。 迁移学习类型: 特…...

【设计模式-4.6】行为型——状态模式
说明:本文介绍行为型设计模式之一的状态模式 定义 状态模式(State Pattern)也叫作状态机模式(State Machine Pattern),允许对象在内部状态发生改变时改变它的行为,对象看起来好像修改了它的类…...
【LeetCode 热题100】动态规划实战:打家劫舍、完全平方数与零钱兑换(LeetCode 198 / 279 / 322)(Go语言版)
💰 动态规划实战:打家劫舍、完全平方数与零钱兑换(LeetCode 198 / 279 / 322) 本篇博客一次性带你掌握三道 LeetCode 中经典的动态规划(DP)题目: 🏠 198. 打家劫舍(Hou…...

换ip是换网络的意思吗?怎么换ip地址
在数字化时代,IP地址作为我们在网络世界的"身份证",其重要性不言而喻。许多人常将"换IP"与"换网络"混为一谈,实际上两者虽有联系却存在本质区别。本文将澄清这一概念误区,并详细介绍多种更换IP地址…...
【软件】在 macOS 上安装 MySQL
在 macOS 上安装 MySQL 有多种方法,以下是两种常见的安装方式:通过 Homebrew 安装和通过安装包安装。以下是详细的步骤: 一、通过 Homebrew 安装 MySQL Homebrew 是 macOS 的包管理器,使用它安装 MySQL 非常方便。 1.安装 Home…...

手机归属地查询接口如何用Java调用?
一、什么是手机归属地查询接口? 是一种便捷、高效的工具,操作简单,请求速度快。它不仅能够提高用户填写地址的效率,还能帮助企业更好地了解客户需求,制定个性化的营销策略,降低风险。随着移动互联网的发展…...

随笔20250530 C# 整合 IC卡读写技术解析与实现
以下是一个完整、最简化的 FeliCa 读取整合示例(无需 SDK,基于 PCSC NuGet 包),你可以直接运行这个控制台程序,验证能否识别 RC-S300 并读取卡片 UID: 🧪 示例说明 📦 使用 NuGet 包…...
循环神经网络(RNN):为什么它能处理时序数据?它真的能减轻过拟合吗?
循环神经网络(RNN):为什么它能处理时序数据?它真的能减轻过拟合吗? 在深度学习领域,循环神经网络(RNN, Recurrent Neural Network)是一种非常重要的神经网络结构,尤其适…...
JVM与JMM深度解析:从Java 8到Java 21的演进
文章目录 第一部分:JVM基础概念与架构JVM是什么?JVM整体架构运行时数据区类加载机制执行引擎 第二部分:Java内存模型(JMM)什么是Java内存模型JMM的核心问题主内存与工作内存内存间交互操作重排序与happens-before原则v…...

基于爬取的典籍数据重新设计前端界面
1.BooksView(书籍列表页) 2.ClassicsView(目录页) 3.管理员端...
基于C++的IOT网关和平台5:github项目ctGateway开发指南
初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C++的,可以在任何平台上使用。 源码指引:github源码指引_初级代码游戏的博客-CSDN博客 系…...

揭秘 NextJS Script 组件
揭秘 NextJS Script 组件 Next.js 的 Script 组件是对原生 <script> 标签的增强封装,主要区别和优势如下: 自动优化加载策略(支持按需/延迟加载)避免重复加载内置性能优化(如预加载、回调钩子)简化…...
网络安全防御指南:全方位抵御暴力破解攻击
在数字化时代,网络安全威胁如影随形,暴力破解攻击(又称“爆破”)作为黑客常用的入侵手段,正时刻觊觎着系统的薄弱环节。想象一下,攻击者如同不知疲倦的“数字小偷”,利用自动化工具疯狂尝试成千…...

【C++/Linux】TinyWebServer前置知识之IP协议详解
目录 IPv4地址 分类 IP数据报分片 IP 协议在传输数据报时,将数据报分为若干分片(小数据报)后进行传输,并在目的系统中进行重组,这一过程称为分片(Fragmentation)。 IP模块工作流程编辑 I…...
mac安装brew时macos无法信任ruby的解决方法
背景 在使用如下脚本安装brew时,遇到安装ruby,macos不信任外部软件,在安全性点击信任仍然无法安装。 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"如何解决 本地安装好符…...

Codeforces Round 1028 (Div. 2)(A-D)
题面链接:Dashboard - Codeforces Round 1028 (Div. 2) - Codeforces A. Gellyfish and Tricolor Pansy 思路 要知道骑士如果没了那么这个人就失去了攻击手段,贪心的来说我们只需要攻击血量少的即可,那么取min比较一下即可 代码 void so…...

记录一个梦,借助大语言模型图片生成
梦见家门口有一条大河,但大河和其它景物都是灰暗没有鲜艳色彩很普通的梦中场景。大河似乎是长江的支流,但也可能有一个响亮的名字似乎是金沙江。 突然看到一条金红色的龙在快速游动,不敢相信自己的眼睛,因为一直不相信有这种生物…...

android binder(二)应用层编程实例
一、binder驱动浅析 从上图看出,binder的通讯主要涉及三个步骤。 在 Binder Server 端定义好服务,然后向 ServiceManager 注册服务在 Binder Client 中向 ServiceManager 获取到服务发起远程调用,调用 Binder Server 中定义好的服务 整个流…...
HTML 等价字符引用:系统化记忆指南
HTML 等价字符引用:系统化记忆指南 在 HTML 中,字符引用(Character Entity References)用于表示保留字符或特殊符号。我将提供一个系统化的方法来记忆这些重要实体,并解释它们的实际应用。 什么是等价字符引用? HTML 字符引用有两种形式: 命名实体:&entity_name…...

【深度学习】17. 深度生成模型:DCGAN与Wasserstein GAN公式深度推导
深度生成模型:DCGAN与Wasserstein GAN公式深度推导 深度卷积生成对抗网络 DCGAN 在原始 GAN 框架中,生成器和判别器通常使用全连接层构建,这限制了模型处理图像的能力。为此,Radford 等人在 2016 年提出了 DCGAN(Deep Convoluti…...
Ubuntu终端性能监视工具
目录 工具1:nvidia-smi 工具2:nvtop 工具3:nvitop 工具1:nvidia-smi nvidia-smi 如果希望自动刷新这个命令,可以输入如下命令: nvidia-smi -l 工具2:nvtop nvtop 安装方法: …...

设计模式——命令设计模式(行为型)
摘要 本文介绍了命令设计模式,这是一种行为型设计模式,用于将请求封装为对象,实现请求的解耦和灵活控制。它包含命令接口、具体命令、接收者、调用者和客户端等角色,优点是解耦请求发送者与接收者,支持命令的排队、记…...
鸿蒙OSUniApp智能商品展示实战:打造高性能的动态排序系统#三方框架 #Uniapp
UniApp智能商品展示实战:打造高性能的动态排序系统 引言 在电商应用开发中,商品展示和智能排序是提升用户体验的关键因素。随着HarmonyOS生态的发展,用户对应用的性能和交互体验要求越来越高。本文将深入探讨如何在UniApp中实现一个性能优异…...

03 APP 自动化-定位元素工具元素定位
文章目录 一、Appium常用元素定位工具1、U IAutomator View Android SDK 自带的定位工具2、Appium Desktop Inspector3、Weditor安装:Weditor工具的使用 4、uiautodev通过定位工具获取app页面元素有哪些属性 二、app 元素定位方法 一、Appium常用元素定位工具 1、U…...

PABD 2025:大数据与智慧城市管理的融合之道
会议简介 2025年公共管理与大数据国际会议(ICPMBD 2025)确实在海口举办。本次会议将围绕公共管理与大数据的深度融合、数据分析在公共管理中的应用、大数据驱动的政策制定与优化等议题展开深入研讨。参会者将有机会聆听前沿学术报告,分享研究…...

Golang持续集成与自动化测试和部署
概述 Golang是一门性能优异的静态类型语言,但因其奇快的编译速度,结合DevOps, 使得它也非常适合快速开发和迭代。 本文讲述如何使用Golang, 进行持续集成与自动化测试和部署。主要使用了以下相关技术: dep: 进行包的依赖管理gin…...
三套知识系统的实践比较:Notion、Confluence 与 Gitee Wiki
在过去几年中,我们团队先后使用过三套企业知识系统:Notion、Confluence 和 Gitee Wiki。每一套系统上线初期都带来一阵热情,但最终能真正融入研发流程、持续活跃的,只有最后一个。 我们不是要为某个平台背书,而是希望…...

mysql离线安装教程
1.下载地址: https://downloads.mysql.com/archives/community/ 2.上传安装包到系统目录,并解压 tar -xvf mysql-8.0.34-1.el7.x86_64.rpm-bundle.tar3.检查系统中是否存在mariadb的rpm包 rpm -qa|grep mariadb存在则删除 rpm -e xxx4.解压完后执行如下命令安装 sudo rpm -iv…...