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

2024-01-16 05:28

本文主要是介绍SeaTunnel 海量数据同步工具的使用(连载中……),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、概述

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 的工作流程

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

其中 SeaTunnel 的引擎:

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

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

四、Linux 下安装 SeaTunel 步骤

1、下载安装包

官网下载地址:Apache SeaTunnel

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

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

3、下载连接器插件

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

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

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

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

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

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

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

五、Linux 下安装 Flink

1、下载安装包

官网下载地址:Downloads | Apache Flink

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

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

3、启动时报错:

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

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

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

1、配置 SeaTunnel 的 Flink 引擎

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 报错:

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

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

env {execution.parallelism = 2checkpoint.interval = 2000job.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

6、查看测试结果

执行前:

执行后:

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

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

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

否则运行时报错:

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 海量数据同步工具的使用(连载中……)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/611459

相关文章

Python获取中国节假日数据记录入JSON文件

《Python获取中国节假日数据记录入JSON文件》项目系统内置的日历应用为了提升用户体验,特别设置了在调休日期显示“休”的UI图标功能,那么问题是这些调休数据从哪里来呢?我尝试一种更为智能的方法:P... 目录节假日数据获取存入jsON文件节假日数据读取封装完整代码项目系统内置的日历应用为了提升用户体验,

vue使用docxtemplater导出word

《vue使用docxtemplater导出word》docxtemplater是一种邮件合并工具,以编程方式使用并处理条件、循环,并且可以扩展以插入任何内容,下面我们来看看如何使用docxtempl... 目录docxtemplatervue使用docxtemplater导出word安装常用语法 封装导出方

Linux换行符的使用方法详解

《Linux换行符的使用方法详解》本文介绍了Linux中常用的换行符LF及其在文件中的表示,展示了如何使用sed命令替换换行符,并列举了与换行符处理相关的Linux命令,通过代码讲解的非常详细,需要的... 目录简介检测文件中的换行符使用 cat -A 查看换行符使用 od -c 检查字符换行符格式转换将

使用Jackson进行JSON生成与解析的新手指南

《使用Jackson进行JSON生成与解析的新手指南》这篇文章主要为大家详细介绍了如何使用Jackson进行JSON生成与解析处理,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 核心依赖2. 基础用法2.1 对象转 jsON(序列化)2.2 JSON 转对象(反序列化)3.

使用Python实现快速搭建本地HTTP服务器

《使用Python实现快速搭建本地HTTP服务器》:本文主要介绍如何使用Python快速搭建本地HTTP服务器,轻松实现一键HTTP文件共享,同时结合二维码技术,让访问更简单,感兴趣的小伙伴可以了... 目录1. 概述2. 快速搭建 HTTP 文件共享服务2.1 核心思路2.2 代码实现2.3 代码解读3.

Elasticsearch 在 Java 中的使用教程

《Elasticsearch在Java中的使用教程》Elasticsearch是一个分布式搜索和分析引擎,基于ApacheLucene构建,能够实现实时数据的存储、搜索、和分析,它广泛应用于全文... 目录1. Elasticsearch 简介2. 环境准备2.1 安装 Elasticsearch2.2 J

使用C#代码在PDF文档中添加、删除和替换图片

《使用C#代码在PDF文档中添加、删除和替换图片》在当今数字化文档处理场景中,动态操作PDF文档中的图像已成为企业级应用开发的核心需求之一,本文将介绍如何在.NET平台使用C#代码在PDF文档中添加、... 目录引言用C#添加图片到PDF文档用C#删除PDF文档中的图片用C#替换PDF文档中的图片引言在当

Java中List的contains()方法的使用小结

《Java中List的contains()方法的使用小结》List的contains()方法用于检查列表中是否包含指定的元素,借助equals()方法进行判断,下面就来介绍Java中List的c... 目录详细展开1. 方法签名2. 工作原理3. 使用示例4. 注意事项总结结论:List 的 contain

C#使用SQLite进行大数据量高效处理的代码示例

《C#使用SQLite进行大数据量高效处理的代码示例》在软件开发中,高效处理大数据量是一个常见且具有挑战性的任务,SQLite因其零配置、嵌入式、跨平台的特性,成为许多开发者的首选数据库,本文将深入探... 目录前言准备工作数据实体核心技术批量插入:从乌龟到猎豹的蜕变分页查询:加载百万数据异步处理:拒绝界面

Android中Dialog的使用详解

《Android中Dialog的使用详解》Dialog(对话框)是Android中常用的UI组件,用于临时显示重要信息或获取用户输入,本文给大家介绍Android中Dialog的使用,感兴趣的朋友一起... 目录android中Dialog的使用详解1. 基本Dialog类型1.1 AlertDialog(