SeaTunnel 海量数据同步工具的使用(连载中……)

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

SeaTunnel 海量数据同步工具的使用(连载中……),JAVA进阶,java

一、概述

SeaTunnel 是一个非常易用,高性能、支持实时流式和离线批处理的海量数据处理产品,前身是 WaterDrop (中文名:水滴),自 2021年10月12日更名为 SeaTunnel 。2021年12月9日,SeaTunnel 正式通过Apache 软件基金会的投票决议,以全票通过的优秀表现正式成为 Apache 孵化器项目。 2022年 3月18日社区正式发布了收个 Apache 版本 V2.1.0。

官网地址:Apache SeaTunnel | Apache SeaTunnel

二、SeaTunnel 的使用场景及其特点

1、使用场景

  • 海量数据ETL
  • 海量数据聚合
  • 多源数据处理

2、特点

  • 简单易用,灵活配置,无需开发
  • 实时流式处理
  • 高性能
  • 海量数据处理能力
  • 模块化和插件化,易于扩展
  • 支持利用SQL做数据处理和聚合
  • Spark Structured Streaming
  • 支持Spark 2.x

SeaTunnel 海量数据同步工具的使用(连载中……),JAVA进阶,java

三、SeaTunnel 的工作流程

SeaTunnel 是在 Spark 和 Flink 的基础上做了一层包装,其工作流程图:

SeaTunnel 海量数据同步工具的使用(连载中……),JAVA进阶,java

其中 SeaTunnel 的引擎:

SeaTunnel 海量数据同步工具的使用(连载中……),JAVA进阶,java

  • Source:数据源输入
  • Transform:数据处理
  • Sink:结果输出

SeaTunnel 的基本思想是控制反转的设计模式,在我们日常使用中,主要就是编辑配置文件,再指定配置文件启动 SeaTunnel,将其转换为具体的Spark或Flink任务。

四、Linux 下安装 SeaTunel 步骤

1、下载安装包

官网下载地址:Apache SeaTunnel

SeaTunnel 海量数据同步工具的使用(连载中……),JAVA进阶,java

2、上传 Linux 服务器后,解压缩

命令: tar -zxvf apache-seatunnel-2.3.2-bin.tar.gz

SeaTunnel 海量数据同步工具的使用(连载中……),JAVA进阶,java

3、下载连接器插件

从 seatunnel v2.2.0开始,二进制包默认不提供连接器依赖,所以第一次使用时,我们需要下载连接器。

具体说明位置在:/home/seaTunnel/apache-seatunnel-2.3.2/config/plugin_config

SeaTunnel 海量数据同步工具的使用(连载中……),JAVA进阶,java

大家一定要挑选自己需要的包下载!!!不用的注释掉!!!

开始下载:./bin/install-plugin.sh

SeaTunnel 海量数据同步工具的使用(连载中……),JAVA进阶,java

下载的好慢,随便截两张图……

SeaTunnel 海量数据同步工具的使用(连载中……),JAVA进阶,java

SeaTunnel 海量数据同步工具的使用(连载中……),JAVA进阶,java

下载的jar包会存放到:/home/seaTunnel/apache-seatunnel-2.3.2/connectors/seatunnel/

SeaTunnel 海量数据同步工具的使用(连载中……),JAVA进阶,java

手动下载地址:Central Repository: org/apache/seatunnel

五、Linux 下安装 Flink

1、下载安装包

官网下载地址:Downloads | Apache Flink

2、上传 Linux 服务器,解压缩

命令:tar -zxvf flink-1.18.0-bin-scala_2.12.tgz

SeaTunnel 海量数据同步工具的使用(连载中……),JAVA进阶,java

3、启动时报错:

SeaTunnel 海量数据同步工具的使用(连载中……),JAVA进阶,java

【解决方法】更换启动方式:

SeaTunnel 海量数据同步工具的使用(连载中……),JAVA进阶,java

❤️参考:Flink系列:解决/bin/config.sh: line 32: syntax error near unexpected token

六、SeaTunnel 实现 MySQL 跨数据库的表数据同步

1、配置 SeaTunnel 的 Flink 引擎

SeaTunnel 海量数据同步工具的使用(连载中……),JAVA进阶,java

SeaTunnel 海量数据同步工具的使用(连载中……),JAVA进阶,java

2、下载 MySQL 驱动jar包

(1)地址:https://repo1.maven.org/maven2/mysql/mysql-connector-java/8.0.30/mysql-connector-java-8.0.30.jar

(2)将 jar 包放到 ${SEATUNNEL_HOME}/lib 下

SeaTunnel 海量数据同步工具的使用(连载中……),JAVA进阶,java

否则后面运行 Seatunnel 报错:

SeaTunnel 海量数据同步工具的使用(连载中……),JAVA进阶,java

3、已知 MySQL A 库中有表 A1,在 B 库中创建表 B1,结构与 A1 相同 

SeaTunnel 海量数据同步工具的使用(连载中……),JAVA进阶,java

4、在 ${SEATUNNEL_HOME}/conf 下创建配置文件

SeaTunnel 海量数据同步工具的使用(连载中……),JAVA进阶,java

SeaTunnel 海量数据同步工具的使用(连载中……),JAVA进阶,java

env {

  execution.parallelism = 2
  checkpoint.interval = 2000
  job.mode = "BATCH"
}

source {
  Jdbc {
        url = "jdbc:mysql://密:3306/zk_run_fact?useUnicode=true&characterEncoding=UTF8&autoReconnect=true&useSSL=false&allowMultiQueries=true&serverTimezone=Asia/Shanghai"
        driver = "com.mysql.cj.jdbc.Driver"
        user = "root"
        password = "密"
        query = "select * from mfrs_other_cumlative_hourly_energy limit 10"
	}
}

transform {

}

sink {
  Jdbc {
        url = "jdbc:mysql://密:3306/zk_system_config?useUnicode=true&characterEncoding=UTF8&autoReconnect=true&useSSL=false&serverTimezone=Asia/Shanghai&allowMultiQueries=true"
        driver = "com.mysql.cj.jdbc.Driver"
        user = "root"
        password = "密"
        query = "insert into mfrs_other_cumlative_hourly_energy_bak(other_hourly_energy_cost_id,device_id,enterprise_id,site_id,signal_id,signal_name,device_signal_type_id,energy,time_interval,create_time) values (?,?,?,?,?,?,?,?,?,?)"
	}
}

5、指定配置文件,执行 SeaTunnel

命令: ./bin/seatunnel.sh --config /home/seaTunnel/apache-seatunnel-2.3.2/config/zy_test.config   -e local

SeaTunnel 海量数据同步工具的使用(连载中……),JAVA进阶,java

6、查看测试结果

执行前:

SeaTunnel 海量数据同步工具的使用(连载中……),JAVA进阶,java

执行后:

SeaTunnel 海量数据同步工具的使用(连载中……),JAVA进阶,java

七、SeaTunnel 实现 MySQL 数据同步到 TDengine

1、编辑 ${SEATUNNEL_HOME}/config/plugin_config文件,添加 TDengine 连接

SeaTunnel 海量数据同步工具的使用(连载中……),JAVA进阶,java

2、再次执行下载插件命令 ./bin/install-plugin.sh

SeaTunnel 海量数据同步工具的使用(连载中……),JAVA进阶,java

SeaTunnel 海量数据同步工具的使用(连载中……),JAVA进阶,java

否则运行时报错:

SeaTunnel 海量数据同步工具的使用(连载中……),JAVA进阶,java

3、下载 TDengine 的连接驱动包

地址:TDengine的连接驱动Jar包

4、将 jar 包放到 ${SEATUNNEL_HOME}/lib 下

5、指定配置文件执行 SeaTunnel

./bin/seatunnel.sh --config /home/seaTunnel/apache-seatunnel-2.3.2/config/ mysqlToTdengine.conf -e local

🚨🚨🚨​​​​​​​🚨​​​​​​​🚨​​​​​​​🚨​​​​​​​🚨​​​​​​​🚨​​​​​​​目前执行时报错,卡在这里,待解决……🚨🚨🚨🚨🚨🚨🚨🚨

SeaTunnel 海量数据同步工具的使用(连载中……),JAVA进阶,java

SeaTunnel 海量数据同步工具的使用(连载中……),JAVA进阶,java文章来源地址https://www.toymoban.com/news/detail-792983.html

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

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

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

相关文章

  • 【并发编程】自研数据同步工具的优化:创建线程池多线程异步去分页调用其他服务接口获取海量数据

    前段时间在做一个数据同步工具,其中一个服务的任务是调用A服务的接口,将数据库中指定数据请求过来,交给kafka去判断哪些数据是需要新增,哪些数据是需要修改的。 刚开始的设计思路是,,我创建多个服务同时去请求A服务的接口,每个服务都请求到全量数据,由于这些

    2024年02月12日
    浏览(28)
  • 使用Apache SeaTunnel进行数据库同步(MySQL to MySQL)

    Apache SeaTunnel 起到的主要作用是什么? 目前,大数据体系里有各种各样的数据引擎,有大数据生态的 Hadoop、Hive、Kudu、Kafka、HDFS,也有泛大数据库体系的 MongoDB、Redis、ClickHouse、Doris,更有云上的 AWS S3、Redshift、BigQuery、Snowflake,还有各种各样数据生态 MySQL、PostgresSQL、IoTDB、

    2024年02月15日
    浏览(39)
  • 商城项目-es的海量查询/聚合/数据同步

    1.sql表 用户数据库: tb_user:用户表,其中包含用户的详细信息 tb_address:用户地址表 商品数据库 tb_item:商品表 订单数据库 tb_order:用户订单表 tb_order_detail:订单详情表,主要是订单中包含的商品信息 tb_order_logistics:订单物流表,订单的收货人信息 2.模块搭建 feign-api:是

    2024年01月21日
    浏览(33)
  • 教程 | 使用 Apache SeaTunnel 同步本地文件到阿里云 OSS

    一直以来,大数据量一直是爆炸性增长,每天几十 TB 的数据增量已经非常常见,但云存储相对来说还是不便宜的。众多云上的大数据用户特别希望可以非常简单快速的将文件移动到更实惠的 S3、OSS 上进行保存,这篇文章就来介绍如何使用 SeaTunnel 来进行到 OSS 的数据同步。

    2024年02月08日
    浏览(37)
  • 一文教会你用Apache SeaTunnel Zeta离线把数据从MySQL同步到StarRocks

    在上一篇文章中,我们介绍了如何下载安装部署SeaTunnel Zeta服务(3分钟部署SeaTunnel Zeta单节点Standalone模式环境),接下来我们介绍一下SeaTunnel支持的第一个同步场景:离线批量同步。顾名思意,离线批量同步需要用户定义好SeaTunnel JobConfig,选择批处理模式,作业启动后开始同

    2024年02月06日
    浏览(68)
  • 海量遥感数据处理与GEE云计算技术应用【基础、进阶】

    目前,GEE以其强大的功能受到了国外越来越多的科技工作者的重视和应用,然而在国内应用还十分有限。应广大科学工作者的要求,本学习将结合具体范例,重点介绍利用GEE进行数据处理的常用方法,并通过土地遥感信息提取进行进阶训练,掌握实际操作能力。  海 量 遥 感

    2024年01月21日
    浏览(44)
  • seatunnel-2.3.2 doris数据同步到hive(cdh-6.3.2)首次运行踩坑记录

    seatunnel-2.3.2 doris数据同步到hive(cdh-6.3.2)首次运行报错解决,解决的报错如下: 1、java.lang.NoClassDefFoundError: org/apache/hadoop/hive/metastore/api/MetaException 2、java.lang.NoClassDefFoundError: org/apache/thrift/TBase 3、java.lang.NoClassDefFoundError:org/apache/hadoop/hive/conf/HiveConf 4、java.lang.NoClassDefFoundError:com

    2024年02月12日
    浏览(35)
  • 【大数据】什么是数据集成?(SeaTunnel 集成工具介绍)

    数据集成是指将来自不同数据源的数据整合到一起形成一个统一的数据集 。这个过程包括从不同的数据源中收集数据,对数据进行清洗、转换、重构和整合,以便能够在一个统一的数据仓库或数据湖中进行存储和管理。 数据集成可以帮助企业更好地理解和利用他们的数据,

    2024年02月08日
    浏览(32)
  • java中多线程去跑海量数据使用线程池批量ThreadPoolExecutor处理的方式和使用Fork/Join框架的方式那种效率高?

    在Java中,使用线程池(ThreadPoolExecutor)和使用Fork/Join框架来处理海量数据的效率取决于具体的应用场景和需求。下面是一些需要考虑的因素: 任务类型:如果任务是CPU密集型的,那么使用Fork/Join框架可能更高效,因为它可以自动进行任务分割和并行处理。如果任务是I/O密集

    2024年02月10日
    浏览(38)
  • 数据同步工具—DataX—Web部署使用

    以前了解datax,感觉对易用性不大好,目前发现已经图形配置工具。简单整理一下。 Datax 的使用过程中,我们会发现,不管是利用 java 调用以及 python 命令启动的方式,我们都无法进行任务的管理,并且每次执行任务前,我们 都需要编辑 Json 配置文件,这是比较繁琐的,随着业

    2024年02月05日
    浏览(34)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包