DataX-web安装部署和使用

news2024/12/25 0:38:54

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-2022
       file:///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.sh

2023-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.sh

2023-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.coloradmin.cn/o/1117937.html

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

相关文章

图书教材经营小程序商城的作用是什么

线下图书教材店非常多,在以前线下店是学生、学者们经常去的场所,每到周末人流不绝,但随着互联网发展以及客户消费升级,如今线下书店人流量非常少,除了头部品牌可以支撑外,中小品牌几乎很难生存。 同时加之…

智慧公厕:打造无人值守的公共厕所运营管理服务

智慧公厕是在"厕所革命"的背景下产生的物联网应用解决方案,结合物联网高精尖技术的中期科技智慧厕所,是智慧城市公共厕所应用解决方案的代表。它提供了一系列监测应用功能,包括监测公厕内部人体活动状态、人体存在状态、空气质量情…

【论文笔记】Far3D: Expanding the Horizon for Surround-view 3D Object Detection

原文链接:https://arxiv.org/pdf/2308.09616.pdf 1. 引言 目前的环视图图像3D目标检测方法分为基于密集BEV的方法和基于稀疏查询的方法。前者需要较高的计算量,难以扩展到长距离检测。后者全局固定的查询不能适应动态场景,通常会丢失远距离…

进阶课1——声纹识别

声纹识别是一种生物识别技术,也称为说话人识别,包括说话人辨认和说话人确认两种技术。该技术通过将声信号转换成电信号,再使用计算机进行识别,不同的任务和应用会使用不同的声纹识别技术,例如在缩小刑侦范围时可能需要…

如何使用积分系统增强用户留存?会员积分体系建设方式介绍

为什么别人家的积分系统能够成功吸引并维护10万个忠实粉丝,而你的积分系统却鲜有人问津?本文将详细解释积分系统如何与会员体系相互关联,以激发会员的复购和升级行为。 想要做好用户留存,互动交流是至关重要的一部分。企业需要灵…

Python--练习:使用while循环求1~100之间,所有偶数的和(涉及if判断是不是偶数)

案例:求1~100之间,所有偶数的和 思考: 先套用原有基础模式,之后再思考其他的。 其实就是在之前文章 Python--练习:使用while循环求1..100的和-CSDN博客 的基础上,再判断如果获取到里面的全部偶数&#…

前端时间分片渲染

在经典的面试题中&#xff1a;”如果后端返回了十万条数据要你插入到页面中&#xff0c;你会怎么处理&#xff1f;” 除了像 useVirtualList 这样的虚拟列表来处理外&#xff0c;我们还可以通过 时间分片 来处理 通过 setTimeout 直接上一个例子&#xff1a; <!--* Auth…

苹果遭双重暴击,品控翻车致iPhone15价格暴跌千元,比iPhone14更便宜

苹果近期可谓屋漏偏逢连夜雨&#xff0c;上市销售才不到一个月&#xff0c;就在中国市场被国产5G手机击败&#xff0c;日前第三方渠道对iPhone15的报价也持续下跌&#xff0c;其中iPhone15plus更是下跌超千元&#xff0c;显示出iPhone15似乎真的卖不动了。 据第三方渠道的报价显…

面试官:如何理解CDN?说说实现原理?

一、是什么 CDN (全称 Content Delivery Network)&#xff0c;即内容分发网络 构建在现有网络基础之上的智能虚拟网络&#xff0c;依靠部署在各地的边缘服务器&#xff0c;通过中心平台的负载均衡、内容分发、调度等功能模块&#xff0c;使用户就近获取所需内容&#xff0c;降…

51系列—基于51单片机的电子万年历设计

本文主要介绍基于51单片机的电子万年历设计 前言 电子万年历是单片机系统的一个应用&#xff0c;由硬件和软件相配合使用。硬件由主控器、时钟电路、温度检测电路、显示电路、键盘接口5个模块组成。主控模块用AT89C52、时钟电路用时钟芯片DS1302、显示模块用LED数码管、温度检…

【CGSSA-BP预测】基于混合混沌-高斯变异-麻雀算法优化BP神经网络回归预测研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

关于ibatis的一些用法——1(基本语法)

关于ibatis的一些用法——1&#xff08;基本语法&#xff09; 1. 前言1.1 唠叨1.2 官网1.2.1 官网地址1.2.2 价值文档1.2.2.1 Data Mapper1.2.2.2 其他 1.3 价值 IT技术问答网站 2. 基本语法2.1 关于 in 的用法2.2 关于驼峰问题2.3 3. 1. 前言 1.1 唠叨 本不想整这些老框架的…

在edge浏览器中安装好了burp的ca证书,浏览器依旧不能访问https的原因

在edge浏览器中安装好了burp的ca证书&#xff0c;浏览器依旧不能访问https的原因 1.SwitchyOmega代理插件设置2.CA证书方法1方法2 1.SwitchyOmega代理插件设置 严格安装以下图片执行&#xff0c;不可少写或多写 2.CA证书 方法1 下载好证书&#xff0c;先导入到edge浏览器的中…

商业智能的利用:打造成功的业务战略之道

在当今快节奏和数据驱动的商业环境中&#xff0c;制定稳健的商业战略对于实现可持续的增长和保持竞争力至关重要。商业智能&#xff08;BI&#xff09;是能够显著提高业务战略有效性的关键因素之一。本文将深入探讨商业智能的定义、其在战略制定中的重要性&#xff0c;以及如何…

作为资深IT从业者,我高度推荐这款智能团队协作工具

作为一名资深的IT从业人员,我最近发现了一款非常不错的团队协作和远程办公工具,它可以大大提高企业和团队的工作效率,所以今天我就向大家强烈推荐下这款产品。 这款产品名叫TeamLinker,它是一个集成了项目管理、文档协同、视频会议等多种功能于一体的智能化团队协作平台。以下…

数控设备液压站比例阀放大器

数控设备液压站是由液压泵、驱动用电动机、油箱、方向阀、节流阀、溢流阀等构成的液压源装置或包括控制阀在内的液压装置。电机带动油泵旋转&#xff0c;从油箱中吸油后打油&#xff0c;将机械能转化为液压油的压力能&#xff0c;再通过集成块&#xff08;或阀组合&#xff09;…

中文编程开发语言编程实际案例:程序控制灯电路以及桌球台球室用这个程序计时计费

中文编程开发语言编程实际案例&#xff1a;程序控制灯电路以及桌球台球室用这个程序计时计费 上图为&#xff1a;程序控制的硬件设备电路图 上图为&#xff1a;程序控制灯的开关软件截图&#xff0c;适用范围比如&#xff1a;台球厅桌球室的计时计费管理&#xff0c;计时的时候…

一阶惯性滤波器的传递函数与时域实现

滤波前后的效果对比如下&#xff1a; 可以得到&#xff0c;滤波后的幅值刚好是滤波前的0.707倍&#xff0c;也就是衰减了3deb&#xff0c;与理论分析一致。 需要注意的是&#xff0c;在simulink中&#xff0c;时域执行周期需要与设置的采样周期Ts一致&#xff0c;例如本例&…

智慧公厕:革新性的公共厕所管理系统

公共厕所&#xff0c;多年前似乎对每个人来说都是个需要避之唯恐不及的地方。但是&#xff0c;现代科技的进步让我们对公厕的认识产生了新的转变。智慧公厕作为一种结合了现代科技和人性化设计的公共厕所信息化管理系统&#xff0c;旨在提供更高效的管理方式&#xff0c;以及更…

Jmeter(七):jmeter连接数据库/中元件的执行顺序作用域详解

Jmeter&#xff1a;jmeter连接数据库 jmeter连接mysql数据库 大致步骤如下&#xff1a; 下载mysql的jar包放入到jmeter的lib下&#xff0c;然后重启jmeter配置JDBC Connection Configuration配置JDBC Request在请求中引用查询到的结果变量&#xff0c;可以结合计数器取每一个…