当前位置: 首页 > 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

相关文章:

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

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

从零开始的云计算生活——第十四天,困难重重,安全管理。

一故事背景 在前面的基本无操作内容后&#xff0c;来到了大头内容&#xff0c;安全管理&#xff01;其中的防火墙相关的内容更是重中之重&#xff0c;要好好掌握&#xff0c;熟练运用。 二SELinux安全上下文 1SELinux 简介 a. SELinux&#xff08;Security-Enhanced Linux&…...

迁移学习模型构建指南(Python实现)

迁移学习模型构建指南(Python实现) 一、迁移学习概述 迁移学习是一种机器学习方法,通过将预训练模型的知识迁移到新任务中,显著提升模型性能和训练效率。其核心思想是:模型在大型数据集上学习到的通用特征(如边缘、纹理、形状)可被复用至相关任务。 迁移学习类型: 特…...

【设计模式-4.6】行为型——状态模式

说明&#xff1a;本文介绍行为型设计模式之一的状态模式 定义 状态模式&#xff08;State Pattern&#xff09;也叫作状态机模式&#xff08;State Machine Pattern&#xff09;&#xff0c;允许对象在内部状态发生改变时改变它的行为&#xff0c;对象看起来好像修改了它的类…...

【LeetCode 热题100】动态规划实战:打家劫舍、完全平方数与零钱兑换(LeetCode 198 / 279 / 322)(Go语言版)

&#x1f4b0; 动态规划实战&#xff1a;打家劫舍、完全平方数与零钱兑换&#xff08;LeetCode 198 / 279 / 322&#xff09; 本篇博客一次性带你掌握三道 LeetCode 中经典的动态规划&#xff08;DP&#xff09;题目&#xff1a; &#x1f3e0; 198. 打家劫舍&#xff08;Hou…...

换ip是换网络的意思吗?怎么换ip地址

在数字化时代&#xff0c;IP地址作为我们在网络世界的"身份证"&#xff0c;其重要性不言而喻。许多人常将"换IP"与"换网络"混为一谈&#xff0c;实际上两者虽有联系却存在本质区别。本文将澄清这一概念误区&#xff0c;并详细介绍多种更换IP地址…...

【软件】在 macOS 上安装 MySQL

在 macOS 上安装 MySQL 有多种方法&#xff0c;以下是两种常见的安装方式&#xff1a;通过 Homebrew 安装和通过安装包安装。以下是详细的步骤&#xff1a; 一、通过 Homebrew 安装 MySQL Homebrew 是 macOS 的包管理器&#xff0c;使用它安装 MySQL 非常方便。 1.安装 Home…...

手机归属地查询接口如何用Java调用?

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

随笔20250530 C# 整合 IC卡读写技术解析与实现

以下是一个完整、最简化的 FeliCa 读取整合示例&#xff08;无需 SDK&#xff0c;基于 PCSC NuGet 包&#xff09;&#xff0c;你可以直接运行这个控制台程序&#xff0c;验证能否识别 RC-S300 并读取卡片 UID&#xff1a; &#x1f9ea; 示例说明 &#x1f4e6; 使用 NuGet 包…...

循环神经网络(RNN):为什么它能处理时序数据?它真的能减轻过拟合吗?

循环神经网络&#xff08;RNN&#xff09;&#xff1a;为什么它能处理时序数据&#xff1f;它真的能减轻过拟合吗&#xff1f; 在深度学习领域&#xff0c;循环神经网络&#xff08;RNN, Recurrent Neural Network&#xff09;是一种非常重要的神经网络结构&#xff0c;尤其适…...

JVM与JMM深度解析:从Java 8到Java 21的演进

文章目录 第一部分&#xff1a;JVM基础概念与架构JVM是什么&#xff1f;JVM整体架构运行时数据区类加载机制执行引擎 第二部分&#xff1a;Java内存模型&#xff08;JMM&#xff09;什么是Java内存模型JMM的核心问题主内存与工作内存内存间交互操作重排序与happens-before原则v…...

基于爬取的典籍数据重新设计前端界面

1.BooksView(书籍列表页) 2.ClassicsView&#xff08;目录页&#xff09; 3.管理员端...

基于C++的IOT网关和平台5:github项目ctGateway开发指南

初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C++的,可以在任何平台上使用。 源码指引:github源码指引_初级代码游戏的博客-CSDN博客 系…...

揭秘 NextJS Script 组件

揭秘 NextJS Script 组件 Next.js 的 Script 组件是对原生 <script> 标签的增强封装&#xff0c;主要区别和优势如下&#xff1a; 自动优化加载策略&#xff08;支持按需/延迟加载&#xff09;避免重复加载内置性能优化&#xff08;如预加载、回调钩子&#xff09;简化…...

网络安全防御指南:全方位抵御暴力破解攻击

在数字化时代&#xff0c;网络安全威胁如影随形&#xff0c;暴力破解攻击&#xff08;又称“爆破”&#xff09;作为黑客常用的入侵手段&#xff0c;正时刻觊觎着系统的薄弱环节。想象一下&#xff0c;攻击者如同不知疲倦的“数字小偷”&#xff0c;利用自动化工具疯狂尝试成千…...

【C++/Linux】TinyWebServer前置知识之IP协议详解

目录 IPv4地址 分类 IP数据报分片 IP 协议在传输数据报时&#xff0c;将数据报分为若干分片&#xff08;小数据报&#xff09;后进行传输&#xff0c;并在目的系统中进行重组&#xff0c;这一过程称为分片&#xff08;Fragmentation&#xff09;。 IP模块工作流程​编辑 I…...

mac安装brew时macos无法信任ruby的解决方法

背景 在使用如下脚本安装brew时&#xff0c;遇到安装ruby&#xff0c;macos不信任外部软件&#xff0c;在安全性点击信任仍然无法安装。 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"如何解决 本地安装好符…...

Codeforces Round 1028 (Div. 2)(A-D)

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

记录一个梦,借助大语言模型图片生成

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

android binder(二)应用层编程实例

一、binder驱动浅析 从上图看出&#xff0c;binder的通讯主要涉及三个步骤。 在 Binder Server 端定义好服务&#xff0c;然后向 ServiceManager 注册服务在 Binder Client 中向 ServiceManager 获取到服务发起远程调用&#xff0c;调用 Binder Server 中定义好的服务 整个流…...

HTML 等价字符引用:系统化记忆指南

HTML 等价字符引用:系统化记忆指南 在 HTML 中,字符引用(Character Entity References)用于表示保留字符或特殊符号。我将提供一个系统化的方法来记忆这些重要实体,并解释它们的实际应用。 什么是等价字符引用? HTML 字符引用有两种形式: 命名实体:&entity_name…...

【深度学习】17. 深度生成模型:DCGAN与Wasserstein GAN公式深度推导

深度生成模型:DCGAN与Wasserstein GAN公式深度推导 深度卷积生成对抗网络 DCGAN 在原始 GAN 框架中&#xff0c;生成器和判别器通常使用全连接层构建&#xff0c;这限制了模型处理图像的能力。为此&#xff0c;Radford 等人在 2016 年提出了 DCGAN&#xff08;Deep Convoluti…...

Ubuntu终端性能监视工具

目录 工具1&#xff1a;nvidia-smi 工具2&#xff1a;nvtop 工具3&#xff1a;nvitop 工具1&#xff1a;nvidia-smi nvidia-smi 如果希望自动刷新这个命令&#xff0c;可以输入如下命令&#xff1a; nvidia-smi -l 工具2&#xff1a;nvtop nvtop 安装方法&#xff1a; …...

设计模式——命令设计模式(行为型)

摘要 本文介绍了命令设计模式&#xff0c;这是一种行为型设计模式&#xff0c;用于将请求封装为对象&#xff0c;实现请求的解耦和灵活控制。它包含命令接口、具体命令、接收者、调用者和客户端等角色&#xff0c;优点是解耦请求发送者与接收者&#xff0c;支持命令的排队、记…...

鸿蒙OSUniApp智能商品展示实战:打造高性能的动态排序系统#三方框架 #Uniapp

UniApp智能商品展示实战&#xff1a;打造高性能的动态排序系统 引言 在电商应用开发中&#xff0c;商品展示和智能排序是提升用户体验的关键因素。随着HarmonyOS生态的发展&#xff0c;用户对应用的性能和交互体验要求越来越高。本文将深入探讨如何在UniApp中实现一个性能优异…...

03 APP 自动化-定位元素工具元素定位

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

PABD 2025:大数据与智慧城市管理的融合之道

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

Golang持续集成与自动化测试和部署

概述 Golang是一门性能优异的静态类型语言&#xff0c;但因其奇快的编译速度&#xff0c;结合DevOps, 使得它也非常适合快速开发和迭代。 本文讲述如何使用Golang, 进行持续集成与自动化测试和部署。主要使用了以下相关技术&#xff1a; dep&#xff1a; 进行包的依赖管理gin…...

三套知识系统的实践比较:Notion、Confluence 与 Gitee Wiki

在过去几年中&#xff0c;我们团队先后使用过三套企业知识系统&#xff1a;Notion、Confluence 和 Gitee Wiki。每一套系统上线初期都带来一阵热情&#xff0c;但最终能真正融入研发流程、持续活跃的&#xff0c;只有最后一个。 我们不是要为某个平台背书&#xff0c;而是希望…...

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…...