首页 > 其他分享 >ETL可视化工具 DataX -- DataX-Web安装 (三)

ETL可视化工具 DataX -- DataX-Web安装 (三)

时间:2024-06-19 14:29:14浏览次数:9  
标签:执行器 Web -- admin DataX executor bin datax

引言

DataX 系列文章:

3.1 简介

DataX Web是在DataX之上开发的分布式数据同步工具,提供简单易用的 操作界面,降低用户使用DataX的学习成本,缩短任务配置时间,避免配置过程中出错。用户可通过页面选择数据源即可创建数据同步任务,支持RDBMS、Hive、HBase、ClickHouse、MongoDB等数据源,RDBMS数据源可批量创建数据同步任务,支持实时查看数据同步进度及日志并提供终止同步功能,集成并二次开发xxl-job可根据时间、自增主键增量同步数据。
任务"执行器"支持集群部署,支持执行器多节点路由策略选择,支持超时控制、失败重试、失败告警、任务依赖,执行器CPU.内存.负载的监控等等。后续还将提供更多的数据源支持、数据转换UDF、表结构同步、数据同步血缘等更为复杂的业务场景。

3.2 安装资源说明

  • DataX-Web git地址:https://github.com/WeiYe-Jing/datax-web
  • DataX-Web-UI 前端 git 地址:https://github.com/WeiYe-Jing/datax-web-ui
  • DataX Web用户手册: https://github.com/WeiYe-Jing/datax-web/blob/master/userGuid.md

当前 datax web 有三个 版本,其中

  • v2.1.1 是单体web 应用架构(建议使用)
    DataX-Web 源码下载地址:https://codeload.github.com/WeiYe-Jing/datax-web/zip/refs/heads/2.1.1-release

  • v2.1.2、v2.1.3 为前后端分离架构,但 DataX-Web-UI 并未适配 v2.1.2、v2.1.3 中新增功能(需自行适配)
    DataX-Web 源码下载地址: https://codeload.github.com/WeiYe-Jing/datax-web/zip/refs/heads/2.1.2-release
    DataX-Web-UI 前端 git 地址:https://github.com/WeiYe-Jing/datax-web-ui

3.3 基础软件

(1)MySQL (5.5+) 必选,对应客户端可以选装, Linux服务上若安装mysql的客户端可以通过部署脚本快速初始化数据库
(2)JDK (1.8.0_xxx) 必选
(3)Maven (3.6.1+) 必选
(4)DataX 必选
(5)Python (2.x) (支持Python3需要修改替换datax/bin下面的三个python文件,替换文件在doc/datax-web/datax-python3下) 必选,
主要用于调度执行底层DataX的启动脚本,默认的方式是以Java子进程方式执行DataX,用户可以选择以Python方式来做自定义的改造

3.4 DataX Web 开发环境部署

开发环境: Windows 10
开发工具:idea
版本:datax-web v2.1.1

3.4.1 创建数据库

执行bin/db下面的datax_web.sql文件(注意老版本更新语句有指定库名)

3.4.2 修改项目配置

1.修改datax_admin 下 resources/application.yml文件

#数据源
  datasource:
    username: root
    password: root
    url: jdbc:mysql://localhost:3306/datax_web?serverTimezone=Asia/Shanghai&useLegacyDatetimeCode=false&useSSL=false&nullNamePatternMatchesAll=true&useUnicode=true&characterEncoding=UTF-8
    driver-class-name: com.mysql.jdbc.Driver

修改数据源配置,目前仅支持mysql

# 配置mybatis-plus打印sql日志
logging:
  level:
    com.wugui.datax.admin.mapper: error
  path: ./data/applogs/admin

修改日志路径path

  # datax-web email
  mail:
    host: smtp.qq.com
    port: 25
    username: [email protected]
    password: xxx
    properties:
      mail:
        smtp:
          auth: true
          starttls:
            enable: true
            required: true
        socketFactory:
          class: javax.net.ssl.SSLSocketFactory

修改邮件发送配置(不需要可以不修改)

2.修改datax_executor下resources/application.yml文件

# log config
logging:
  config: classpath:logback.xml
  path: ./data/applogs/executor/jobhandler

修改日志路径path

datax:
  job:
    admin:
      ### datax-web admin address
      addresses: http://127.0.0.1:8080
    executor:
      appname: datax-executor
      ip:
      port: 9999
      ### job log path
      logpath: ./data/applogs/executor/jobhandler
      ### job log retention days
      logretentiondays: 30
  executor:
    jsonpath: /Users/mac/data/applogs

  pypath: /Users/mac/tools/datax/bin/datax.py

修改datax.job配置说明

  • admin.addresses datax_admin部署地址,如调度中心集群部署存在多个地址则用逗号分隔,执行器将会使用该地址进行"执行器心跳注册"和"任务结果回调";
  • executor.appname 执行器AppName,每个执行器机器集群的唯一标示,执行器心跳注册分组依据;
  • executor.ip 默认为空表示自动获取IP,多网卡时可手动设置指定IP,该IP不会绑定Host仅作为通讯实用;地址信息用于 “执行器注册” 和 “调度中心请求并触发任务”;
  • executor.port 执行器Server端口号,默认端口为9999,单机部署多个执行器时,注意要配置不同执行器端口;
  • executor.logpath 执行器运行日志文件存储磁盘路径,需要对该路径拥有读写权限;
  • executor.logretentiondays 执行器日志文件保存天数,过期日志自动清理, 限制值大于等于3时生效; 否则, 如-1, 关闭自动清理功能;
  • executor.jsonpath datax json临时文件保存路径
  • pypath DataX启动脚本地址,例如:xxx/datax/bin/datax.py 如果系统配置DataX环境变量(DATAX_HOME),logpath、jsonpath、pypath可不配,log文件和临时json存放在环境变量路径下。

3.5 启动项目

3.5.1 本地idea开发环境

  • 1.运行datax_admin下 DataXAdminApplication
  • 2.运行datax_executor下 DataXExecutorApplication

admin启动成功后日志会输出三个地址,两个接口文档地址,一个前端页面地址

3.5.2 访问 web 端

启动成功后打开页面
默认地址: http://127.0.0.1:8080/index.html#/login
默认管理员用户名:admin 密码:123456

控制台页面

在这里插入图片描述
在这里插入图片描述

3.5.3 web 端 操作简介

1.任务管理–数据源管理 :创建 数据库连接信息
2.任务管理–datax 任务模板:创建 定时执行任务模板
3.创建完成后,在任务管理中查看

4 DataX Web Linux 环境部署

1)下载官方提供的版本tar版本包

点击下载 提取码:phe6

2) 编译打包(官方提供的tar包跳过)
直接从Git上面获得源代码,在项目的根目录下执行如下命令

mvn clean install 

执行成功后将会在工程的build目录下生成安装包

build/datax-web-{VERSION}.tar.gz

4.1 开始部署

1)解压安装包

在选定的安装目录,解压安装包

tar -zxvf datax-web-{VERSION}.tar.gz

2)执行一键安装脚本

进入解压后的目录,找到bin目录下面的install.sh文件,如果选择交互式的安装,则直接执行

./bin/install.sh

在交互模式下,对各个模块的package压缩包的解压以及configure配置脚本的调用,都会请求用户确认,可根据提示查看是否安装成功,如果没有安装成功,可以重复尝试; 如果不想使用交互模式,跳过确认过程,则执行以下命令安装
./bin/install.sh --force

3)数据库初始化

如果你的服务上安装有mysql命令,在执行安装脚本的过程中则会出现以下提醒:

Scan out mysql command, so begin to initalize the database
Do you want to initalize database with sql: [{INSTALL_PATH}/bin/db/datax-web.sql]? (Y/N)y
Please input the db host(default: 127.0.0.1): 
Please input the db port(default: 3306): 
Please input the db username(default: root): 
Please input the db password(default: ): 
Please input the db name(default: exchangis)

按照提示输入数据库地址,端口号,用户名,密码以及数据库名称,大部分情况下即可快速完成初始化。 如果服务上并没有安装mysql命令,则可以取用目录下/bin/db/datax-web.sql脚本去手动执行,完成后修改相关配置文件

vi ./modules/datax-admin/conf/bootstrap.properties

#Database
#DB_HOST=
#DB_PORT=
#DB_USERNAME=
#DB_PASSWORD=
#DB_DATABASE=

按照具体情况配置对应的值即可。

4) 配置

安装完成之后,
在项目目录: /modules/datax-admin/bin/env.properties 配置邮件服务(可跳过)

MAIL_USERNAME=""
MAIL_PASSWORD=""

此文件中包括一些默认配置参数,例如:server.port,具体请查看文件。
在项目目录下/modules/datax-execute/bin/env.properties 指定PYTHON_PATH的路径

vi ./modules/{module_name}/bin/env.properties

### 执行datax的python脚本地址

PYTHON_PATH=

### 保持和datax-admin服务的端口一致;默认是9527,如果没改datax-admin的端口,可以忽略
DATAX_ADMIN_PORT=

此文件中包括一些默认配置参数,例如:executor.port,json.path,data.path等,具体请查看文件。

5)启动服务

  • 一键启动所有服务
./bin/start-all.sh

中途可能发生部分模块启动失败或者卡住,可以退出重复执行,如果需要改变某一模块服务端口号,则:

vi ./modules/{module_name}/bin/env.properties

找到SERVER_PORT配置项,改变它的值即可。 当然也可以单一地启动某一模块服务:

./bin/start.sh -m {module_name}
  • 一键取消所有服务
./bin/stop-all.sh

当然也可以单一地停止某一模块服务:

./bin/stop.sh -m {module_name}

6)查看服务(注意!注意!)

在Linux环境下使用JPS命令,查看是否出现DataXAdminApplication和DataXExecutorApplication进程,如果存在这表示项目运行成功

如果项目启动失败,请检查启动日志:modules/datax-admin/bin/console.out或者modules/datax-executor/bin/console.out

Tips: 脚本使用的都是bash指令集,如若使用sh调用脚本,可能会有未知的错误

7)运行

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

输入用户名 admin 密码 123456 就可以直接访问系统

8) 运行日志

部署完成之后,在modules/对应的项目/data/applogs下(用户也可以自己指定日志,修改application.yml 中的 logpath地址即可),用户可以根据此日志跟踪项目实际启动情况
如果执行器启动比admin快,执行器会连接失败,日志报"拒绝连接"的错误,一般是先启动admin,再启动executor,30秒之后会重连,如果成功请忽略这个异常。

9)集群部署

修改modules/datax-executor/conf/application.yml 文件下admin.addresses地址。 为了方便单机版部署,项目目前没有将ip部分配置到env.properties,部署多节点时可以将整个地址作为变量配置到env文件。
将官方提供的tar包或者编译打包的tar包上传到服务节点,按照步骤5中介绍的方式单一地启动某一模块服务即可。例如执行器需要部署多个节点,仅需启动执行器项目,执行 ./bin/start.sh -m datax-executor
调度中心、执行器支持集群部署,提升调度系统容灾和可用性。

  • 1.调度中心集群:

    DB配置保持一致;

    集群机器时钟保持一致(单机集群忽视);

  • 2.执行器集群:

    执行器回调地址(admin.addresses)需要保持一致;执行器根据该配置进行执行器自动注册等操作。

    同一个执行器集群内AppName(executor.appname)需要保持一致;调度中心根据该配置动态发现不同集群的在线执行器列表。

标签:执行器,Web,--,admin,DataX,executor,bin,datax
From: https://blog.csdn.net/dazhong2012/article/details/139754035

相关文章

  • Springboot 集成 Shardingsphere-JDBC
    Springboot集成Shardingsphere-JDBCShardingsphere系列目录:背景调研前提新增依赖分表策略简单分库分表策略垂直分库广播表水平分库(单表)水平分库(多表)水平分表HINT配置逻辑代码自定义分库分表(精准定位+范围查询)配置代码精准定位数据库精准定位+范围查询表代码仓......
  • [AWS]EKS简单实战(二)ingress根据路径转发到不同的pod
    背景:在上一次实验中是利用ALB类型的service转到转发流量到后端的POD。采用的架构如下:但是在实际使用过程中,如果每一个POD都需要一个ALB去进行转发,那将采用大量的资源,所以这里要引入ingress,使得外部流量先达到ingress,然后ingress再根据具体的后缀去进行转发到不同的pod中,架构如......
  • 一键解锁多场景新玩法,TRTC上新虚拟背景功能,开通即用省时省心!
    在视频通话、直播带货、线上会议等众多实时互动场景中,虚拟背景这一功能已然深入人心。通过虚拟背景功能,用户可以模糊视频画面的背景,从而突出主体,获得更沉浸、专注的画面观感,也可以直接替换背景,通过更换图片来适应不同场景的背景需要。这样既可以保护自身隐私,同时也避免了杂乱......
  • 嵌入式通信协议-----SPI协议详解
    目录一、简介1.概念2.特点3.优缺点 4.应用场景二、通信原理三、通信特性1.时钟频率2.时钟极性(CPOL)3.时钟相位(CPHA)4.四种模式5.多主机模式(1)多片选(2)菊花链四、编程实现五、三种SPI比较1.DualSPI2.QueuedSPI3.三者的区别一、简介1.概念      SP......
  • 团队里程碑阶段一
    我们深入讨论并总结了第一阶段的工作进展及成果。经过大家的共同努力,我们已经完成了第一阶段的预期工作。我们成功地整合了已实现的功能,确保它们能够协同工作,并且我们的软件框架已经初步搭建出了可行的雏形。这些成就不仅展示了团队的技术能力,也为接下来的开发工作打下了坚实基础......
  • Unity3D 八叉树划分空间和可视化
    也许更好的阅读体验成果展示代码OctreeNodeusingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;publicclassOctreeNode{//空间内包含的物体publicList<GameObject>areaObjects;//空间中心publicVector3center;......
  • OAuth2.0的简单认识
    内容:结合实际平台应用,以开发者视角简单描述OAuth2.0OAuth2.0其实是一种授权机制,而且在日常的互联网环境中是非常常见的,比如一些网站或者应用,在我们选择登录时,常常会有第三方登录选项,其实这就是OAuth2.0的一种实现。官方协议流程这里直接引用官网文档流程授权码模式其实OAu......
  • SpringData初步学习-连接MySQL数据库
    1.添加mysql驱动和spring-data-jpa依赖<dependencies><!--SpringDataJPA--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId><......
  • 《梦断代码》阅读笔记
    《梦断代码》一书深刻描绘了软件开发领域的种种问题和挑战,强调了软件开发不仅是技术活动,更是艺术与科学的结合体。在软件开发过程中,除了要具备技术上的精湛,还需要团队合作、沟通协调、创新思维等综合能力。一个成功的软件项目离不开对艺术与科学的深刻理解和应用,只有深入研究技术......
  • java面向对象-封装
    一封装(面向对象的三大特征--封装)1.1封装的概念将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问1.2封装的步骤私有化(private)是一个权限修饰符。可以修饰成员(成员变量和成员方法)被private修饰的成员......