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 -yinstall 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/$basearchenabled=1gpgcheck=1gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2022
file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
这个enable后面参数修改为1,其他的源全部修改为0。
#安装MySQL
yum -yinstall 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;#设置密码策略为LOWset global validate_password_length=1;#设置密码长度为1#修改MySQL配置文件vim /etc/my.cnf
...
#添加以下内容validate_password_policy=0validate_password_length=1#重启mysql
systemctl restart mysqld
#修改密码
mysql -uroot-p
alter user 'root'@'localhost' identified by '1234';
安装JDK
yum -yinstall 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/softcd /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-admin2023-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)java2023-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 inset(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.验证:
- 执行一次任务查看是否同步成功
标签:
前端
本文转载自: https://blog.csdn.net/weixin_45625174/article/details/133827253
版权归原作者 小鱼儿& 所有, 如有侵权,请联系我们删除。
版权归原作者 小鱼儿& 所有, 如有侵权,请联系我们删除。