• 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-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';
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36

    安装JDK

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

    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
    
    • 1
    • 运行自检脚本
    cd  /usr/local/soft/datax/bin/
    python datax.py /usr/local/soft/datax/job/job.json
    
    • 1
    • 2

    在这里插入图片描述

    DataX-web 安装部署

    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
    
    • 1
    • 2
    • 3
    • 4
    • 5

    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 ######
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43

    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的路径
    ...
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    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)
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    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
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 通过NaviCat连接SQL server并创建表格
      在这里插入图片描述

    3. 创建项目

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

    4. 添加数据源

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

    在这里插入图片描述

    在这里插入图片描述

    5. 创建任务模板

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

    在这里插入图片描述

    6. 创建任务构建

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

    7.验证:

    • 执行一次任务查看是否同步成功
      在这里插入图片描述
      在这里插入图片描述
  • 相关阅读:
    模板中的依赖类型使用 --- typename
    导航url链接中获取参数
    mysql基础部分第一次复习(9-18章)
    SAE 2.0,让容器化应用开发更简单
    胜哥测评:电视机顶盒哪个牌子好?2023网络机顶盒排行榜
    【管理运筹学】第 10 章 | 排队论(3,标准的 M/M/1 排队系统)
    Vue--》简述组件的数据共享
    如何轻松查询分析多个快递单号物流到站派件延误件
    Arrow parquet types
    第十一届中国云计算标准和应用大会 | 云计算国家标准及白皮书系列发布 华云数据全面参与编制
  • 原文地址:https://blog.csdn.net/weixin_45625174/article/details/133827253