数据同步工具—DataX—Web部署使用

这篇具有很好参考价值的文章主要介绍了数据同步工具—DataX—Web部署使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

以前了解datax,感觉对易用性不大好,目前发现已经图形配置工具。简单整理一下。

DataX—Web 部署使用

Datax 的使用过程中,我们会发现,不管是利用 java 调用以及 python 命令启动的方式,我们都无法进行任务的管理,并且每次执行任务前,我们 都需要编辑 Json 配置文件,这是比较繁琐的,随着业务的增加,配置文件 不方便管理和迁移并且每次执行都需要记录命令。 同时目前 DataX 只支持 单机版,无法调用远程的 datax,并且多节点之间的协作不能控制。

因此,开发一款支持远程分布式调用 Datax 的可视化管理工具非常有必要,Datax-Web 就是这样的一款工具。

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

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

DataX—Web 架构

DataX—Web 整体的架构如下

datax web部署,大数据,mongodb,数据库

安装部署

环境要求

  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方式来做自定义的改造

获取安装包

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

​ ​点击下载​​ 提取码:cpsk

2 编译打包(官方提供的tar包跳过)

直接从Git上面获得源代码

datax web部署,大数据,mongodb,数据库

在项目的根目录下执行如下命令

 
mvn clean install

执行成功的话可以看到下面的输出

datax web部署,大数据,mongodb,数据库

注意如果你的java版本太高可能会有下面的报错,所以建议使用1.8

datax web部署,大数据,mongodb,数据库

 

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project datax-core: Compilation failure: Compilation failure:
[ERROR] /Users/kingcall/workspace/idea/datax-web/datax-core/src/main/java/com/wugui/datatx/core/glue/impl/SpringGlueFactory.java:[11,24] 程序包javax.annotation不存在
[ERROR] /Users/kingcall/workspace/idea/datax-web/datax-core/src/main/java/com/wugui/datatx/core/glue/impl/SpringGlueFactory.java:[45,54] 找不到符号

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

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

此时的目录结构如下

datax web部署,大数据,mongodb,数据库

部署

解压安装包

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

 
tar xzvf datax-web-2.1.2.tar.gz

执行安装脚本

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

 
./bin/install.sh

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

./bin/install.sh --force

这里我们使用交互式安装

 

Password:
2022-10-01 20:18:45.3N [INFO] (96375) ####### Start To Uncompress Packages ######
2022-10-01 20:18:45.3N [INFO] (96375) Uncompressing....
Do you want to decompress this package: [datax-admin_2.1.2_1.tar.gz]? (Y/N)n
2022-10-01 20:18:51.3N [INFO] (96375) Uncompress package: [datax-admin_2.1.2_1.tar.gz] to modules directory
tar: Option --skip-old-files is not supported
Usage:
List: tar -tf <archive-filename>
Extract: tar -xf <archive-filename>
Create: tar -cf <archive-filename> [filenames...]
Help: tar --help
Do you want to decompress this package: [datax-executor_2.1.2_1.tar.gz]? (Y/N)y
2022-10-01 20:18:58.3N [INFO] (96375) Uncompress package: [datax-executor_2.1.2_1.tar.gz] to modules directory
tar: Option --skip-old-files is not supported
Usage:
List: tar -tf <archive-filename>
Extract: tar -xf <archive-filename>
Create: tar -cf <archive-filename> [filenames...]
Help: tar --help
2022-10-01 20:18:58.3N [INFO] (96375) ####### Finish To Umcompress Packages ######
Scan modules directory: [/Users/liuwenqiang/workspace/soft/datax-web-2.1.2/bin/../modules] to find server under dataxweb
2022-10-01 20:18:58.3N [INFO] (96375) ####### Start To Install Modules ######
2022-10-01 20:18:58.3N [INFO] (96375) Module servers could be installed:

2022-10-01 20:18:58.3N [INFO] (96375) ####### Finish To Install Modules ######

进入到 packages 目录下,执行下面的命令

 
tar xzvf datax-admin_2.1.2_1.tar.gz -C ../modules
tar xzvf datax-executor_2.1.2_1.tar.gz -C ../modules

datax web部署,大数据,mongodb,数据库

配置数据库

我们需要配置datax-web 的数据库地址信息

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

内容如下

 
#Database
DB_HOST=localhost
DB_PORT=3306
DB_USERNAME=root
DB_PASSWORD=www1234
DB_DATABASE=datax_web

初始化数据库

创建一个名为​​datax_web​​ 的数据库

 
mysql -uroot -pwww1234 -e "create database datax_web"

然后执行​​./bin/db/datax-web.sql​​ SQL 文件

 
mysql -uroot -pwww1234 -Ddatax_web < ./bin/db/datax_web.sql

我们看到下面的表已经被创建

datax web部署,大数据,mongodb,数据库

其他配置

配置​​executor​

 
vim modules/datax-executor/bin/env.properties

主要配置端口和可执行脚本

 

DATAX_ADMIN_PORT=9527

## PYTHON脚本执行位置
#PYTHON_PATH=/home/hadoop/install/datax/bin/datax.py
PYTHON_PATH=/Users/liuwenqiang/workspace/soft/datax/bin/datax.py

端口和服务端保持一致,默认是​​9527​

datax web部署,大数据,mongodb,数据库

启动服务

 
./bin/start-all.sh

启动成功后可以看到下面的进程

 
99124 DataXExecutorApplication
98904 DataXAdminApplication

打开浏览器进入

 

http://localhost:9527/index.html

datax web部署,大数据,mongodb,数据库

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

datax web部署,大数据,mongodb,数据库

停止服务或者启动某个服务

 

# 启动 admin 或者 execuotr
./bin/start.sh -m {module_name}
# 停止所有服务
./bin/stop-all.sh
# 当然也可以单一地停止某一模块服务:
./bin/stop.sh -m {module_name}

集群部署

修改modules/datax-executor/conf/application.yml文件下admin.addresses地址。 为了方便单机版部署,项目目前没有将ip部分配置到env.properties,部署多节点时可以将整个地址作为变量配置到env文件。

将官方提供的tar包或者编译打包的tar包上传到服务节点,按照步骤5中介绍的方式单一地启动某一模块服务即可。例如执行器需要部署多个节点,仅需启动执行器项目,执行 ​​./bin/start.sh -m datax-executor​

调度中心、执行器支持集群部署,提升调度系统容灾和可用性。

 

* 1.调度中心集群:

DB配置保持一致;<br>
集群机器时钟保持一致(单机集群忽视);<br>

* 2.执行器集群:

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

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

可以看到我们目前只有一个executor

datax web部署,大数据,mongodb,数据库

使用

前面我们已经部署好了,下面我们看怎么使用DataX—Web

创建项目

首先在项目管理页面上创建项目

datax web部署,大数据,mongodb,数据库

创建数据源

在数据源管理页面上创建数据源

datax web部署,大数据,mongodb,数据库

我们可以点击测试进行测试看配置是否正确

datax web部署,大数据,mongodb,数据库

创建任务模版

在任务管理页面下的​​DataX任务模版​​ 菜单下创建任务模版

datax web部署,大数据,mongodb,数据库

构建任务

构建reader

从数据源中选择即可

datax web部署,大数据,mongodb,数据库

构建writer

从数据源中选择即可,这里我们选择了同一个库下的​​city_sink​​​ ,这个表和city 的表结构完全相同 ​​create table city_sink like city;​

datax web部署,大数据,mongodb,数据库

字段映射

datax web部署,大数据,mongodb,数据库

构建

第一步 点击构建则会生成json

datax web部署,大数据,mongodb,数据库

第二步 选择任务模版,然后下一步则会生成任务

datax web部署,大数据,mongodb,数据库

这里我们可以在操作按钮处选择执行一次,然后我们发现任务的执行状态已经变成成功了

datax web部署,大数据,mongodb,数据库

可以看到数据已经同步到了city_sink

datax web部署,大数据,mongodb,数据库

Mysql同步数据到Hive

我们只需要创建一个Hive 的数据源

datax web部署,大数据,mongodb,数据库

然后构建任务的时候,构建writer 选择hive ,然后选择对应的表即可创建,因为过程很简单这里就不演示了

datax web部署,大数据,mongodb,数据库

然后执行发现执行失败了

datax web部署,大数据,mongodb,数据库

去日志管理页面查看日志

datax web部署,大数据,mongodb,数据库

告诉我们参数不对,缺少了必须填写的参数

datax web部署,大数据,mongodb,数据库

我们可以再回过头去看writer 的配置,我们发现确实有很多参数没有配置,参考上一节

datax web部署,大数据,mongodb,数据库

既然如此我们就编辑下这个配置,更新配置后再次执行发现执行成功了

datax web部署,大数据,mongodb,数据库

hdfs 上也看到数据了

datax web部署,大数据,mongodb,数据库

Hive 数据同步到Mysql

下面我们同步Hive的数据到Mysql, 我们把上同步到Hive 的city 表同步到mysql 的city_sink , 这里我们先清空mysql 的city_sink,或者在writer的时候通过前置SQL清空

reader 的信息如下,发现我们在选择hive 作为writer 的时候没有让我们填写 “path、defaultFS” 等信息,导致任务报错,作为reader的时候却要我们写,所以发现还是有bug 的

datax web部署,大数据,mongodb,数据库

任务已经被构建

datax web部署,大数据,mongodb,数据库

执行成功了

datax web部署,大数据,mongodb,数据库

总结

这一节主要部署了DataX—Web ,DataX—Web 主要解决了DataX的任务管理、运维的问题,而且有自己的调度,但是在整个数仓中却难以使用,因为我们无法将DataX—Web 和已有的调度系统进行整合。

所以比较好的方式是在我们的调度系统中去集成DataX—Web,那这个时候只有任务构建这个模块是我们需要的,其他的监控、数据源管理调度系统已经有了,所以这个东西应用场景有限,只能作为一个参考。文章来源地址https://www.toymoban.com/news/detail-743046.html

到了这里,关于数据同步工具—DataX—Web部署使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【大数据进阶第三阶段之Datax学习笔记】使用阿里云开源离线同步工具DataX 实现数据同步

    【大数据进阶第三阶段之Datax学习笔记】阿里云开源离线同步工具Datax概述  【大数据进阶第三阶段之Datax学习笔记】阿里云开源离线同步工具Datax快速入门   【大数据进阶第三阶段之Datax学习笔记】阿里云开源离线同步工具Datax类图 【大数据进阶第三阶段之Datax学习笔记】使

    2024年01月24日
    浏览(42)
  • datax 同步mongodb数据库到hive(hdfs)和elasticserch(es)

    1.mongodb版本:3.6.3。(有点老了,后来发现flinkcdc都只能监控一张表,多张表无法监控) 2.datax版本:自己编译的DataX-datax_v202210 3.hdfs版本:3.1.3 4.hive版本:3.1.2 1.增量数据:需要每隔1小时将mongodb中17个集合的数据同步至hive,因为有数据生成时间,才用datax查询方式,将上一个

    2023年04月23日
    浏览(33)
  • 业务数据同步工具介绍和使用(Sqoop、Datax、Canal、MaxWell、Flink CDC)

    介绍 Sqoop : SQ L-to-Had oop ( Apache已经终止Sqoop项目 ) 用途:把关系型数据库的数据转移到HDFS(Hive、Hbase)(重点使用的场景);Hadoop中的数据转移到关系型数据库中。Sqoop是java语言开发的,底层使用 mapreduce 。 需要注意的是,Sqoop主要使用的是Map,是数据块的转移,没有使

    2024年02月15日
    浏览(68)
  • dataX3.0和datax-web部署实践踩坑记录(windows版)

    今年公司需要上一个数据分析项目,在考察了一番(百度一番)之后决定上datax加上datax-web的方式来进行数据调度。 PS:写在前面,主要作用是为了自己以后再次(跳槽)部署而写下的记录。 持续更新中... ... 注意: 这里的链接是指向的github的开发文档 。下载dataX需要拉到下

    2024年02月20日
    浏览(30)
  • 数据同步工具DataX、Sqoop、Maxwell、Canal

    常见的数据库同步同步主要有:DataX、Sqoop、Maxwell、Canal 数据同步工具种类繁多,大致可分为两类,一类是以DataX、Sqoop为代表的基于Select查询的离线、批量同步工具,另一类是以Maxwell、Canal为代表的基于数据库数据变更日志(例如MySQL的binlog,其会实时记录所有的insert、upda

    2024年02月11日
    浏览(26)
  • 开源DataX集成可视化项目Datax-Web的使用

    上一篇文章我们已经搭建好了 Datax-Web 后台,这篇文章我们具体讲一下如何通过Datax-Web来配置,同步MySQL数据库。 1、\\\"调度中心OnLine:\\\"右侧显示在线的\\\"调度中心\\\"列表, 任务执行结束后, 将会以failover的模式进行回调调度中心通知执行结果, 避免回调的单点风险; 2、“执行器列表”

    2024年02月08日
    浏览(30)
  • 阿里云开源离线同步工具DataX3.0,用于数据仓库、数据集市、数据备份

    DataX是阿里云开源的一款离线数据同步工具,支持多种数据源和目的地的数据同步,包括但不限于MySQL、Oracle、HDFS、Hive、ODPS等。它可以通过配置文件来定义数据源和目的地的连接信息、数据同步方式、数据过滤等,从而实现数据的高效、稳定、可扩展的同步。 例如,如果您

    2024年02月10日
    浏览(40)
  • 数据同步工具调研选型:SeaTunnel 与 DataX 、Sqoop、Flume、Flink CDC 对比

    Apache SeaTunnel 是一个非常易用的超高性能分布式数据集成产品,支持海量数据的离线及实时同步。每天可稳定高效同步万亿级数据,已应用于数百家企业生产,也是首个由国人主导贡献到 Apache 基金会的数据集成顶级项目。 SeaTunnel 主要解决数据集成领域的常见问题: * 数据源

    2024年02月04日
    浏览(36)
  • docker 安装 datax和datax-web 之 datax-web登录时提示账号或密码错误

    https://www.cnblogs.com/leihongnu/p/16612273.html 根据该博客的教程安装成功后,登录页面能打开,但是所提供的账户密码一直报错,这个就需要根据日志一步步去寻找原因了。 该镜像包含三个模块:datax, datax-web, datax-exector,日志路径分别为: /home/datax/datax-web-2.1.2/bin/console.out /home/data

    2024年02月10日
    浏览(28)
  • 使用IntelliJ IDEA和VSCode搭建datax-web-ui开发环境

    记录 :376 场景 :使用IntelliJ IDEA搭建datax-web-ui开发环境。使用VSCode搭建datax-web-ui开发环境。 版本: node-v14.17.3 npm-6.14.13 datax-web-ui开源地址 :https://github.com/WeiYe-Jing/datax-web-ui 一、使用IntelliJ IDEA搭建datax-web-ui开发环境 1.安装nodejs和npm 1.1下载地址 官网地址:https://nodejs.org/dist

    2024年02月10日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包