DataX-web安装部署和使用

DataX-web的环境准备

  • MySQL (5.5+) 必选,对应客户端可以选装, Linux服务上若安装mysql的客户端可以通过部署脚本快速初始化数据库

  • JDK (1.8.0_xxx) 必选

  • DataX 必选

  • Python (2.x) (支持Python3需要修改替换datax/bin下面的三个python文件,替换文件在doc/datax-web/datax-python3下) 必选,主要用于调度执行底层DataX的启动脚本,默认的方式是以Java子进程方式执行DataX,用户可以选择以Python方式来做自定义的改造

安装部署MySQL

yum  -y install  https://repo.mysql.com/mysql80-community-release-el7-7.noarch.rpm
#修改yum文件
vim mysql-community.repo
# Enable to use MySQL 5.7
[mysql57-community]
name=MySQL 5.7 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2022file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
这个enable后面参数修改为1,其他的源全部修改为0。
#安装MySQL
yum -y install mysql-community-server
#启动mysql
systemctl start  mysqld.service
systemctl enable  mysqld.service
#查询MySQL的密码
grep password /var/log/mysqld.log   
#登录MySQL并修改密码和密码策略
mysql -uroot -p
alter  user  'root'@'localhost'  identified by '1234Qaz.'
set global validate_password_policy=0;  #设置密码策略为LOW
set global validate_password_length=1; #设置密码长度为1
#修改MySQL配置文件
vim  /etc/my.cnf
...
#添加以下内容
validate_password_policy=0
validate_password_length=1
#重启mysql
systemctl   restart mysqld
#修改密码
mysql  -uroot -p
alter  user 'root'@'localhost'  identified by '1234';

安装JDK

yum -y  install java-1.8.0-openjdk  java-1.8.0-openjdk-devel

DataX安装部署

1. DataX介绍

1.1 什么是 DataX

  • DataX 是阿里巴巴开源的一个异构数据源离线同步工具,致力于实现包括关系型数据库(MySQL、Oracle 等)、HDFS、Hive、ODPS、HBase、FTP 等各种异构数据源之间稳定高效的数据同步功能。

    在这里插入图片描述

1.2. DataX 的设计

  • 为了解决异构数据源同步问题,DataX 将复杂的网状的同步链路变成了星型数据链路,DataX 作为中间传输载体负责连接各种数据源。当需要接入一个新的数据源的时候,只需要将此数据源对接到 DataX,便能跟已有的数据源做到无缝数据同步。
    在这里插入图片描述

1.3. 支持的数据源

  • DataX 目前已经有了比较全面的插件体系,主流的 RDBMS 数据库、NOSQL、大数据计算系统都已经接入。
类型数据源Reader(读)Writer(写)
RDBMS 关系型数据库MySQL√√
Oracle√√
OceanBase√√
SQLServer√√
PostgreSQL√√
DRDS√√
Kingbase√√
通用RDBMS(支持所有关系型数据库)√√
阿里云数仓数据存储ODPS√√
ADB√
ADS√
OSS√√
OCS√
Hologres√
AnalyticDB For PostgreSQL√
阿里云中间件datahub√√
SLS√√
图数据库阿里云 GDB√√
Neo4j√
NoSQL数据存储OTS√√
Hbase0.94√√
Hbase1.1√√
Phoenix4.x√√
Phoenix5.x√√
MongoDB√√
Cassandra√√
数仓数据存储StarRocks√√
ApacheDoris√
ClickHouse√√
Databend√
Hive√√
kudu√
selectdb√
无结构化数据存储TxtFile√√
FTP√√
HDFS√√
Elasticsearch√
时间序列数据库OpenTSDB√
TSDB√√
TDengine√√

1.4. 框架设计

在这里插入图片描述

  • Reader:数据采集模块,负责采集数据源的数据,将数据发送给Framework。

  • Writer:数据写入模块,负责不断向Framework取数据,并将数据写入到目的端。

  • Framework:用于连接reader和writer,作为两者的数据传输通道,并处理缓冲,流控,并发,数据转换等核心技术问题。

1.5. 运行原理

在这里插入图片描述

  • Job:单个作业的管理节点,负责数据清理、子任务划分、TaskGroup监控管理。

  • Task:由Job切分而来,是DataX作业的最小单元,每个Task负责一部分数据的同步工作。

  • Schedule:将Task组成TaskGroup,单个TaskGroup的并发数量为5。

  • TaskGroup:负责启动Task。

  • **举例:**用户提交了一个 DataX 作业,并且配置了 20 个并发,目的是将一个 100 张分表的 mysql 数据同步到 odps 里面。 DataX 的调度决策思路是:

    1. DataXJob 根据分库分表切分成了 100 个 Task。
    2. 根据 20 个并发,DataX 计算共需要分配 4 个 TaskGroup。
    3. 4 个 TaskGroup 平分切分好的 100 个 Task,每一个 TaskGroup 负责以 5 个并发共计运行 25 个 Task。

1.6. 与 Sqoop 的对比

在这里插入图片描述

2. DataX安装部署

  • 二进制包下载地址
  • 源码包下载地址

2.1. 前置要求

  • Linux
  • JDK(1.8 以上,推荐 1.8)
  • Python(推荐 Python2.6.X)

2.2. 安装

  • 将下载好的 datax.tar.gz 上传到 服务器上/usr/local/soft/
  • 解压 datax.tar.gz 到/usr/local/soft/
tar -xf   datax.tar.gz
  • 运行自检脚本
cd  /usr/local/soft/datax/bin/
python datax.py /usr/local/soft/datax/job/job.json

在这里插入图片描述

DataX-web 安装部署

  • 源码包
  • 下载官方提供的版本tar版本包 提取码:cpsk

1. datax-web介绍

1.1. datax-web是什么?

  • DataX Web是在DataX之上开发的分布式数据同步工具,提供简单易用的 操作界面,降低用户使用DataX的学习成本,缩短任务配置时间,避免配置过程中出错。用户可通过页面选择数据源即可创建数据同步任务,支持RDBMS、Hive、HBase、ClickHouse、MongoDB等数据源,RDBMS数据源可批量创建数据同步任务,支持实时查看数据同步进度及日志并提供终止同步功能,集成并二次开发xxl-job可根据时间、自增主键增量同步数据。

  • 任务"执行器"支持集群部署,支持执行器多节点路由策略选择,支持超时控制、失败重试、失败告警、任务依赖,执行器CPU.内存.负载的监控等等。后续还将提供更多的数据源支持、数据转换UDF、表结构同步、数据同步血缘等更为复杂的业务场景。

1.2. datax-web架构

在这里插入图片描述

1. DataX-web的二进制包下载

#把下载的datax-web二进制tar包上传至/usr/local/soft
cd /usr/local/soft/#解压
tar -xf  datax-web-2.1.2.tar.gz

2. 执行一键安装脚本

cd datax-web-2.1.2/
#执行一键安装脚本
./bin/install.sh2023-10-14 23:06:55.058 [INFO] (9341) Creating directory: [/usr/local/soft/datax-web-2.1.2/bin/../modules].
2023-10-14 23:06:55.062 [INFO] (9341)  ####### Start To Uncompress Packages ######
2023-10-14 23:06:55.064 [INFO] (9341) 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)这里选择y解压
2023-10-14 23:06:57.422 [INFO] (9341)  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)这里选择y解压
2023-10-14 23:07:00.938 [INFO] (9341)  Uncompress package: [datax-executor_2.1.2_1.tar.gz] to modules directory
2023-10-14 23:07:01.162 [INFO] (9341)  ####### Finish To Umcompress Packages ######
Scan modules directory: [/usr/local/soft/datax-web-2.1.2/bin/../modules] to find server under dataxweb
2023-10-14 23:07:01.166 [INFO] (9341)  ####### Start To Install Modules ######
2023-10-14 23:07:01.168 [INFO] (9341) Module servers could be installed:[datax-admin]  [datax-executor]
Do you want to confiugre and install [datax-admin]? (Y/N)y #是否要确认并安装datax-admin
2023-10-14 23:07:03.516 [INFO] (9341)  Install module server: [datax-admin]
Start to make directory
2023-10-14 23:07:03.532 [INFO] (9381)  Start to build directory
2023-10-14 23:07:03.536 [INFO] (9381) Creating directory: [/usr/local/soft/datax-web-2.1.2/modules/datax-admin/bin/../logs].
2023-10-14 23:07:03.570 [INFO] (9381) Directory or file: [/usr/local/soft/datax-web-2.1.2/modules/datax-admin/bin/../conf] has been exist
2023-10-14 23:07:03.572 [INFO] (9381) Creating directory: [/usr/local/soft/datax-web-2.1.2/modules/datax-admin/bin/../data].
end to make directory
Start to initalize database
2023-10-14 23:07:03.598 [INFO] (9381)  Scan out mysql command, so begin to initalize the database
Do you want to initalize database with sql: [/usr/local/soft/datax-web-2.1.2/bin/db/datax_web.sql]? (Y/N)y 是否要使用sql初始化数据库,这里选择y
Please input the db host(default: 127.0.0.1): #请输入数据库主机,这里回车,选择127.0.0.1
Please input the db port(default: 3306): #请输入数据库端口,这里回车,选择3306
Please input the db username(default: root): #请输入数据库用户名,这里回车,选择root
Please input the db password(default: ): 1234 #请输入数据库密码,这里输入1234
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,这里选择安装
2023-10-14 23:07:27.697 [INFO] (9341)  Install module server: [datax-executor]
2023-10-14 23:07:27.713 [INFO] (9425)  Start to build directory
2023-10-14 23:07:27.715 [INFO] (9425) Creating directory: [/usr/local/soft/datax-web-2.1.2/modules/datax-executor/bin/../logs].
2023-10-14 23:07:27.739 [INFO] (9425) Directory or file: [/usr/local/soft/datax-web-2.1.2/modules/datax-executor/bin/../conf] has been exist
2023-10-14 23:07:27.741 [INFO] (9425) Creating directory: [/usr/local/soft/datax-web-2.1.2/modules/datax-executor/bin/../data].
2023-10-14 23:07:27.764 [INFO] (9425) Creating directory: [/usr/local/soft/datax-web-2.1.2/modules/datax-executor/bin/../json].
2023-10-14 23:07:27.789 [INFO] (9341)  ####### Finish To Install Modules ######

3. 修改配置文件

#/modules/datax-execute/bin/env.properties 指定PYTHON_PATH的路径
vim modules/datax-executor/bin/env.properties
...
#修改如下:DATAX_ADMIN_PORT=9527  #保持和datax-admin端口一致
PYTHON_PATH=/usr/local/soft/datax/bin/datax.py #指定datax的路径
...

4. 启动服务

#一键启动所有服务
/usr/local/soft/datax-web-2.1.2/bin/start-all.sh2023-10-14 23:26:40.112 [INFO] (10448)  Try To Start Modules In Order
2023-10-14 23:26:40.118 [INFO] (10456)  ####### Begin To Start Module: [datax-admin] ######
2023-10-14 23:26:40.124 [INFO] (10464) load environment variables
2023-10-14 23:26:40.420 [INFO] (10464) DATAX-ADMIN has been started in process
2023-10-14 23:26:40.427 [INFO] (10625)  ####### Begin To Start Module: [datax-executor] ######
2023-10-14 23:26:40.433 [INFO] (10633) load environment variables
2023-10-14 23:26:40.710 [INFO] (10633) java
2023-10-14 23:26:40.713 [INFO] (10633) Waiting DATAX-EXEXUTOR to start complete ...
2023-10-14 23:26:40.853 [INFO] (10633) DATAX-EXEXUTOR start success#一键停掉所有服务
/usr/local/soft/datax-web-2.1.2/bin/stop-all.sh

5. 测试datax-web是否可以通过浏览器访问

  • 在浏览器中输入http://ip:9527/index.html就可以访问对应的主界面(ip为datax-admin部署所在服务器ip,port为为datax-admin 指定的运行端口)

  • 输入用户名 admin 密码 123456 就可以直接访问系统
    在这里插入图片描述

mysql数据同步到sql-server

  • 首先完成这个数据同步之前先安装MySQL并创建库和表并写入数据,然后安装sql-server并创建表

1. 在MySQL上创建数据库,并写入数据

  • 由于本机已经安装MySQL,所以不需要安装。
create database db1 default charset=utf8;
use db1;
#创建表格
create table stuinfo(-> id int(10),-> name char(4) not null,-> age int(4) not null,-> sex char(10),-> likes char(20) );
#导入数据
mysql> insert into stuinfo values('001','bob','25','boy','run'),('002','andy','28','boy','read a book');
#查看表格信息
mysql> select * from stuinfo;
+------+------+-----+------+-------------+
| id   | name | age | sex  | likes       |
+------+------+-----+------+-------------+
|    1 | bob  |  25 | boy  | run         |
|    2 | andy |  28 | boy  | read a book |
+------+------+-----+------+-------------+
2 rows in set (0.00 sec)

2. 安装sqlserver并创建表格

#下载yum源
curl https://packages.microsoft.com/config/rhel/7/mssql-server-2019.repo > /etc/yum.repos.d/mssql-server.repo
#安装
yum install -y mssql-server
#程序包安装完成后,请运行 mssql-conf setup 命令选择安装版本并按提示进行安装,具体操作如下:
/opt/mssql/bin/mssql-conf setup
#回车后---》选择版本号---》选择是否同意许可条款--》创建sa的密码--》回车
#配置完成后,请验证服务是否正在运行
systemctl status mssql-server
  • 通过NaviCat连接SQL server并创建表格
    在这里插入图片描述

3. 创建项目

  • 点击项目管理—》添加—》填写项目名称和描述点击确定即可
    在这里插入图片描述
    在这里插入图片描述

4. 添加数据源

  • 点击数据源管理-----》添加—》填写数据源信息
  • 这里需要添加两个数据源分别是MySQL和SQL server的
    在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

5. 创建任务模板

  • 任务管理—》DataX任务模板—》填写任务信息

在这里插入图片描述

6. 创建任务构建

  • 任务管理–》任务构建–》步骤1构建reader–>步骤2构建write—>步骤3字段映射–》步骤4构建
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

7.验证:

  • 执行一次任务查看是否同步成功
    在这里插入图片描述
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.tpcf.cn/news/113682.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

飞书-多维文档-计算时间差

1. 选择字段类型 如图所示,字段类型选择 公式 2. 编辑公式 单击 公式编辑器 在弹出的公式编辑框中输入公式 TEXT([终结时间]-[开始时间],"HH:MM") [终结时间] 和 [开始时间] 请替换成你的表格中对应的字段名称HH:MM 表示输出的时间格式为 时:分其中 “…

【编解码格式】Sorenson系列

Sorenson Sorenson Media是一家专门从事视频编码技术的美国软件公司。Sorenson Vision 成立于 1995 年 12 月,该公司开发的技术获得了犹他州立大学的许可并最终获得。该公司于 1997 年 1 月在MacWorld Expo的开发者预览会上首次宣布其编解码器(压缩和解…

黑豹程序员-架构师学习路线图-百科:Maven

文章目录 1、什么是maven官网下载地址 2、发展历史3、Maven的伟大发明 1、什么是maven Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project’s build, reporting and…

【算法挨揍日记】day16——525. 连续数组、1314. 矩阵区域和

525. 连续数组 525. 连续数组 题目描述: 给定一个二进制数组 nums , 找到含有相同数量的 0 和 1 的最长连续子数组,并返回该子数组的长度。 解题思路: 本题的元素只有0和1,根据题目意思,我们可以把题目看成找一段最…

通讯网关软件028——利用CommGate X2Modbus实现Modbus RTU访问PI服务器

本文介绍利用CommGate X2Modbus实现Modbus RTU访问PI数据库。CommGate X2MODBUS是宁波科安网信开发的网关软件,软件可以登录到网信智汇(http://wangxinzhihui.com)下载。 【案例】如下图所示,实现上位机通过Modbus RTU来获取PI数据库的数据。 【解决方案…

YOLOv8改进实战 | 更换主干网络Backbone(二)之轻量化模型GhostnetV2

前言 轻量化网络设计是一种针对移动设备等资源受限环境的深度学习模型设计方法。下面是一些常见的轻量化网络设计方法: 网络剪枝:移除神经网络中冗余的连接和参数,以达到模型压缩和加速的目的。分组卷积:将卷积操作分解为若干个较小的卷积操作,并将它们分别作用于输入的不…

基于nodejs+vue语言的酒店管理系统

目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.2 express框架介绍 6 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性:…

Visual Components软件有哪些用途 衡祖仿真

Visual Components是一款用于制造业虚拟仿真的软件,主要用于工业自动化和制造领域。我们一起来看一下该软件有哪些功能吧! 1、工厂仿真 Visual Components可以建立虚拟的工厂环境,模拟和优化生产流程。用户可以创建工厂布局、定义设备和机器人…

[0xGame 2023 公开赛道] week3

9点停止提交,抓紧时间写出来,明天还有别的题。 PWN edit-shellcode-runtime 可以输入shellcode然后执行,但是禁用了\x0f\x05(syscall,箭头处),这里需要用前边的程序把这个syscall弄出来。我这里最后一个字符输入\x0f…

Qt设置horizontal line 和vertical line的颜色

在Qt中,要设置水平线(QFrame)和垂直线(QSplitter)的颜色,可以使用样式表(stylesheet)或者直接设置QPalette。 下面是两种设置的示例: 使用样式表(stylesheet…

【Nginx34】Nginx学习:安全链接、范围分片以及请求分流模块

Nginx学习:安全链接、范围分片以及请求分流模块 又迎来新的模块了,今天的内容不多,但我们都进行了详细的测试,所以可能看起来会多一点哦。这三个模块之前也从来都没用过,但是通过学习之后发现,貌似还都挺有…

微信收款码提现要手续费吗

目前不管是微信商户或者支付宝商户最低费率可以达到0.2%费率;市面上普通个体商户或者企业商家的收款费率一般在0.6左右,一些使用第三方聚合支付平台的也有使用0.38的,总体也就是10000块钱的费率是38-60块钱,对于一些流水比较大的商…

ArduPilot开源飞控之RC_Channels

ArduPilot开源飞控之RC_Channels 1. 源由2. 框架设计2.1 继承关系2.1.1 RC_Channel_Copter2.1.2 RC_Channels_Copter2.1.3 RC_Channels2.1.4 RC_Channel 2.2 启动代码2.3 任务代码 3. 重要例程3.1 RC_Channels3.2 init3.3 read_input3.4 update 4. 总结5. 参考资料 1. 源由 Ar…

电机矢量控制算法和例程

电机矢量控制算法是一种高级的电机控制方法,它通过将电机转子空间矢量转换到旋转坐标系中,并在该坐标系中进行控制来实现对电机的精确控制。下面是对电机矢量控制算法的详细解释: 坐标系变换:电机矢量控制首先将电机转子空间矢量变…

0基础学习PyFlink——模拟Hadoop流程

学习大数据还是绕不开始祖级别的技术hadoop。我们不用了解其太多,只要理解其大体流程,然后用python代码模拟主要流程来熟悉其思想。 还是以单词统计为例,如果使用hadoop流程实现,则如下图。 为什么要搞这么复杂呢? 顾…

操作系统【OS】进程的控制结构PCB

进程的控制结构 PCB 程序段 数据段 PCB PCB 是进程存在的唯一标识一个进程的存在,必然会有一个 PCB,如果进程消失了,那么 PCB 也会随之消失PCB常驻内存 PCB包含什么信息? 进程描述信息 进程标识符PID:标识各个进程&#…

git常见错误信息及解决方法

Git 是一个很好的项目管理系统,唯一的缺点就是是英文的,而我又英语太差,再加上时不时会出现一些奇怪的报错,让人头大。所以这里就简单记录一些我遇到的报错和我是怎么解决的。 20230226 warning: in the working copy of package…

详解API基础知识

目录 什么是API: API 的设计原则包括: API 的开发流程包括以下几个步骤: API 的使用场景包括: API 的优势包括: 然而,API 也存在一些挑战和问题,例如: 什么是API: API(应用程…

JS监听按键,禁止F12,禁止右键,禁止保存网页

禁止右键: document.oncontextmenu new Function("event.returnValuefalse;") //禁用右键禁止按键: // 监听按键 document.onkeydown function () {// f12if (window.event && window.event.keyCode 123) {alert("F12被禁用…

Linux内核8. Linux内核的经典调试方式

1 内核调试以及工具总结 内核总是那么捉摸不透, 内核也会犯错, 但是调试却不能像用户空间程序那样, 为此内核开发者为我们提供了一系列的工具和系统来支持内核的调试. 内核的调试, 其本质是内核空间与用户空间的数据交换, 内核开发者们提供了多样的形式来完成这一功能. 2 用户…