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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/416079.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Oracle学习笔记——基础一起学 14

第十四天 DECODE的简单例子 用case实现 --DECODE的简单例子 --用case实现 select id,name, case sex when 1 then 男 when 2 then 女 end 性别 from student; --DECODE取出一行内两列中的较大值 --先建表 create table sales(month char(2),sales_tv number,sales_…

redis数据安全(二)数据持久化 RDB

目录 一、RDB快照持久化 原理 二、RDB快照持久化配置(redis.conf): 三、触发RDB备份: 1、自动备份,需配置备份规则: 2、手动执行命令备份(save | bgsave): 3、flus…

安防监控系统EasyCVR平台用户调用设备参数,信息不返回是什么原因?

安防视频监控系统EasyCVR视频综合管理平台,采用了开放式的网络结构,平台能在复杂的网络环境中(专网、局域网、广域网、VPN、公网等)将前端海量的设备进行统一集中接入与视频汇聚管理,平台支持设备通过4G、5G、WIFI、有…

刷题总结1.19

这句话是不正确的。当对链接队列进行出队操作时,front指针会发生变化。 链接队列是一种基于链表实现的队列数据结构。队列的特点是先进先出,即首先进队的元素将首先出队。在出队操作中,我们需要移动front指针,将其指向下一个元素…

【Linux常用命令——文件基本属性即权限操作】

Linux文件基本属性 显示文件属性 ls命令 Linux ls(英文全拼:list files)命令用于显示指定工作目录下之内容(列出目前工作目录所含之文件及子目录)。 语法: ls [参数]参数: -a 显示所有文件及目录 (. 开头…

解决字符串类型转数字类型相加结果异常问题

js字符串类型转换数字类型有七种方法,分别是parseInt(),parseFloat(),Math.floor(),乘以数字(*1),Number(),双波浪号 (~~number),一元运算符(number&#xff…

国标GB28181安防视频监控平台EasyCVR视频分享页增加精简模式

智慧安防平台EasyCVR能在复杂的网络环境中(专网、局域网、广域网、VPN、公网等)将前端海量的设备进行统一集中接入与视频汇聚管理,平台支持设备通过4G、5G、WIFI、有线等方式进行视频流的快捷传输,可以兼容各品牌的IPC、NVR、移动…

被忽视的暗面:客户端应用漏洞挖掘之旅

被忽视的暗面:客户端应用漏洞挖掘之旅 前言 在2023年12月15日,我有幸参加了由“字节跳动安全中心”举办的“安全范儿”沙龙活动。作为“中孚信息元亨实验室”的一员,我被邀请分享名为“被忽视的暗面:客户端应用漏洞挖掘之旅”的…

【开源】基于JAVA语言的教学资源共享平台

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 课程档案模块2.3 课程资源模块2.4 课程作业模块2.5 课程评价模块 三、系统设计3.1 用例设计3.2 类图设计3.3 数据库设计3.3.1 课程档案表3.3.2 课程资源表3.3.3 课程作业表3.3.4 课程评价表 四、系统展…

leetcode2312卖木头块

其实不难&#xff0c;主要是你得一眼看出来这个问题缩小规模然后就可以用DP来做了 using ll long long; class Solution { public:long long sellingWood(int m, int n, vector<vector<int>>& prices) {ll f[m10][n10];ll p[m10][n10];memset(p,0,sizeof p)…

使用 Vector 在 Kubernetes 中收集日志

多年来&#xff0c;我们一直在使用 Vector 在我们的 Kubernetes 平台中收集日志&#xff0c;并成功地将其应用于生产中以满足各种客户的需求&#xff0c;并且非常享受这种体验。因此&#xff0c;我想与更大的社区分享它&#xff0c;以便更多的 K8s 运营商可以看到潜力并考虑他们…

C# 图解教程 第5版 —— 第25章 反射和特性

文章目录 25.1 元数据和反射25.2 Type 类25.3 获取 Type 对象25.4 什么是特性25.5 应用特性25.6 预定义的保留特性25.6.1 Obsolete 特性25.6.2 Conditional 特性25.6.3 调用者信息特性25.6.4 DebuggerStepThrough 特性25.6.5 其他预定义特性 25.7 关于应用特性的更多内容25.7.1…