一、介绍

SeaTunnel 是一个非常好用、超高性能的分布式数据集成平台,架构于 Apache Spark 和 Apache Flink 之上,实现了海量数据的实时同步与转换。每天可以稳定高效地同步数百亿数据,目前已接近百家公司在生产上使用

依赖环境:Spark3.2.1、FLink

运行服务器:test01(用户bdg_app)

运行路径:/home/bdg_app/wang/seatunnel

官网:https://seatunnel.apache.org/docs/2.3.3/about

二、SeaTunnel环境配置

1、服务配置

(1)下载地址

https://seatunnel.apache.org/docs/2.3.3/start-v2/locally/deployment

(2)修改配置,选择需要的连接器 config/plugin_config

connector-fake
connector-console
connector-cdc-mysql
connector-clickhouse
connector-hive
connector-iceberg
connector-jdbc
connector-kafka

(3)安装连接器

sh bin/install-plugin.sh 2.3.3

(4)下载mysql驱动,放入SeaTunnel目录

https://seatunnel.apache.org/docs/2.3.3/connector-v2/source/Mysql

放入 $SEATNUNNEL_HOME/plugins/jdbc/lib/

(5)Spark版本切换

SeaTunnel可以支持spark2和3提交任务,可以通过替换spark包方式切换spark版本。从其它服务器拷贝过来的spark包需要修改配置才可以

环境变量配置地址: /etc/profile

Spark地址:/apps/srv/service/spark

第一步:先把spark目录换名,mv spark spark-bak2.4.1-20231108

第二步:把新版spark换名称,mv spark-3.2.1 spark

(6)旧版waterdrop同步命令

cd /home/bdg_app/wangshida/waterdrop/2281/test_usql_log

dw用户:sh /apps/scripts/waterdrop-2.0.1/bin/start-waterdrop-spark.sh --master yarn --deploy-mode cluster --config execute.job --queue defalt

非dw用户:sudo su - bdg_app -c 'cd /apps/srv/instance/executor/bin/executions/11652781/2281/test_usql_log && export HADOOP_USER_NAME=bdg_app && source ./stage.env && sh /apps/scripts/waterdrop-2.0.1/bin/start-waterdrop-spark.sh --master yarn --deploy-mode cluster --config execute.job --queue defalt

三、配置使用案例

1、随机生成数据,输出到控制台。提交到yarn运行

sh /apps/scripts/seatunnel-2.3.3/bin/start-seatunnel-spark-3-connector-v2.sh --master yarn --deploy-mode cluster --config ./rand_console.job --queue defalt

配置内容:

env {
execution.parallelism = 1
job.mode = "BATCH"
}
source {
FakeSource {
result_table_name = "fake"
row.num = 16
schema = {
fields {
name = "string"
age = "int"
}
}
}
}
transform {
FieldMapper {
source_table_name = "fake"
result_table_name = "fake1"
field_mapper = {
age = age
name = new_name
}
}
}
 

2、随机生成数据,输出到控制台。本地运行。配置同上

sh /apps/scripts/seatunnel-2.3.3/bin/start-seatunnel-spark-3-connector-v2.sh --master local --deploy-mode client --config ./rand_console.job

3、mysql到控制台,提交到yarn运行

sh /apps/scripts/seatunnel-2.3.3/bin/start-seatunnel-spark-3-connector-v2.sh --master yarn --deploy-mode cluster --config ./mysql_console.job --queue default

配置内容:

env {
execution.parallelism = 1
job.mode = "BATCH"
}
source {
Jdbc {
driver = "com.mysql.cj.jdbc.Driver"
connection_check_timeout_sec = 100
url = "jdbc:mysql://127:3306/usql?zeroDateTimeBehavior=convertToNull&useServerPrepStmts=false&rewriteBatchedStatements=true&useUnicode=true&characterEncoding=utf8&tinyInt1isBit=false&serverTimezone=Asia/Shanghai"
user = ""
password = ""
query="select * from test_wang1"
}
}
transform {
}
sink {
Console {}
}
 

4、hive到控制台-因goosfs暂不支持

sh /apps/scripts/seatunnel-2.3.3/bin/start-seatunnel-spark-3-connector-v2.sh --master yarn --deploy-mode cluster --config ./hive_console.job --queue default

env {
parallelism = 1
job.name="test_hive_source_to_hive"
spark.kerberos.principal="bdg_app@EMR-"
spark.kerberos.keytab="./bdg_app.keytab"
}
source {
Hive {
table_name = "bdg_app.ods_other_test"
metastore_uri = "thrift://127:7004"
}
}
sink {
Console {
}
}
 

5、mysql 到hive-因goosfs暂不支持

sh /apps/scripts/seatunnel-2.3.3/bin/start-seatunnel-spark-3-connector-v2.sh --master yarn --deploy-mode cluster --config ./mysql_hive.job --queue sailing

env {
parallelism = 1
job.name="test_hive_source_to_hive"
spark.kerberos.principal="bdg_app@EMR"
spark.kerberos.keytab="./bdg_app.keytab"
}
source {
Hive {
table_name = "bdg_app.ods_other_test_usql_usql_log_df"
metastore_uri = "thrift://127:7004"
}
}
sink {
Console {
}
}
 

6、iceberg到控制台

sh /apps/scripts/seatunnel-2.3.3/bin/start-seatunnel-spark-2-connector-v2.sh --master yarn --deploy-mode cluster --config ./iceberg_console.job --queue sailing

env {
parallelism = 1
job.name="test_iceberg_source_to_hive"
spark.kerberos.principal="bdg_app@EMR-"
spark.kerberos.keytab="./bdg_app.keytab"
}
source {
Iceberg {
catalog_name = "spark_catalog"
catalog_type = "hive"
uri = "thrift://127:7004"
warehouse = "hdfs://usr/hive/warehouse"
namespace = "bdg_app"
table = "test2"
}
}
sink {
Console {
}
}
 

7、因旧版支持同步到iceberg,测试seatunnel 2.1.3版本mysql到iceberg

sh /home/bdg_app/wangshida/upload/apache-seatunnel-incubating-2.1.3/bin/start-seatunnel-spark.sh --master yarn --deploy-mode cluster --config ./mysql_iceberg.job

同步工具-SeaTunnel使用的更多相关文章

  1. Java并发之CyclicBarrier 可重用同步工具类

    package com.thread.test.thread; import java.util.Random; import java.util.concurrent.*; /** * Cyclic ...

  2. Java并发之CountDownLatch 多功能同步工具类

    package com.thread.test.thread; import java.util.Random; import java.util.concurrent.*; /** * CountD ...

  3. Java核心知识点学习----线程同步工具类,CyclicBarrier学习

    线程同步工具类,CyclicBarrier日常开发较少涉及,这里只举一个例子,以做备注.N个人一块出去玩,相约去两个地方,CyclicBarrier的主要作用是等待所有人都汇合了,才往下一站出发. 1 ...

  4. Rsync 3.1.0 发布,文件同步工具

    文件同步工具Rsync 3.1.0发布.2013-09-29 上一个版本还是2011-09-23的3.0.9 过了2年多.Rsync基本是Linux上文件同步的标准了,也可以和inotify配合做实时 ...

  5. java5 CountDownLatch同步工具

    好像倒计时计数器,调用CountDownLatch对象的countDown方法就将计数器减1,当到达0时,所有等待者就开始执行. java.util.concurrent.CountDownLatch ...

  6. mysql对比表结构对比同步,sqlyog架构同步工具

    mysql对比表结构对比同步,sqlyog架构同步工具 对比后的结果示例: 执行后的结果示例: 点击:"另存为(S)" 按钮可以把更新sql导出来.

  7. 文件和文件夹同步工具AFiles 1.0 发布

    文件和文件夹同步工具AFiles 1.0  正式发布了! 本软件支持按文件日期或长度的各种比较方式来同步文件或者文件夹. 支持双向同步功能. 支持深层文件夹功能. 可以自动产生比较和同步的记录情况. ...

  8. rsync同步工具学习笔记

    rsync同步工具 1.rsync介绍 rsync是一款开源的.快速的.多功能的.可实现全量及增量的本地或远程数据同步备份的优秀工具.rsync软件适用于unix/linux/windows等多种操作 ...

  9. 文件同步工具BT Sync介绍和使用说明

    BT Sync介绍 BT 下载,相信大伙儿都知道的.今儿个要介绍的 BT Sync,跟 BT 下载一样,都是 BitTorrent 公司发明滴玩意儿,都是采用 P2P 协议来进行传输. 简而言之,BT ...

  10. Microsoft SyncToy 文件同步工具

    Microsoft SyncToy SyncToy 是由 微软 推出的一款免费的文件夹同步工具.虽然名字中有一个 Toy,但是大家可千万不要误以为它的功能弱爆了.实际上,我感觉这款软件还真是摆脱了微软 ...

随机推荐

  1. Tornado框架之项目部署(六)

    知识点 supervisor配置与使用 nginx配置 目录: 部署Tornado 1. supervisor 安装 配置 启动 supervisorctl 2. nginx 部署Tornado 为了 ...

  2. IEDA 控制台乱码解决

    1.修改idea 目录下的文件 idea64.exe.vmoptions idea.exe.vmoptions 在这个文件尾部增加 -Dfile.encoding=UTF-8 2.编辑ieda 文件配 ...

  3. 《JavaScript 模式》读书笔记(8)— DOM和浏览器模式2

    四.长期运行脚本 可能会注意到有时候浏览器会提示某个脚本已经运行了很长时间,是否应该停止该脚本.实际上无论要处理多么复杂的任务,都不希望应用程序发生上述事情.而且,如果该脚本的工作十分繁重,那么浏览器 ...

  4. 【双堆懒删除】codeforces 1294 D. MEX maximizing

    前言 双堆懒删除 当需要维护若干元素中的最大值(或最小值)时,可以用一个堆维护,但是堆只擅长处理堆顶元素,对堆中任意元素的处理就束手无策了.此时,可以引入另外一个堆,我们定义原来的堆为保存堆 \(ex ...

  5. Flutter查漏补缺2

    Flutter的理念架构 Flutter架构分为三层 参考官方文档 Framework层(dart) flutter engine层(C/C++) embeder层(platform-specific ...

  6. aspirate 工具

    dotnet tool aspirate https://www.nuget.org/packages/aspirate/0.1.40-preview 作为全局工具安装 dotnet tool ins ...

  7. 两个 F# 的 MVVM

    fsprojects/Avalonia.FuncUI: Develop cross-plattform GUI Applications using F# and Avalonia! fabulous ...

  8. Qt/C++原创项目作品精选(祖传原创/性能凶残/界面精美)

    00 前言说明 从事Qt开发十年有余,一开始是做C#.NET开发的,因为项目需要,转行做嵌入式linux开发,在嵌入式linux上做可视化界面开发一般首选Qt,当然现在可选的方案很多比如安卓,但是十多 ...

  9. Qt/C++音视频开发53-本地摄像头推流/桌面推流/文件推流/监控推流等

    一.前言 编写这个推流程序,最开始设计的时候是用视频文件推流,后面陆续增加了监控摄像头推流(其实就是rtsp视频流).网络电台和视频推流(一般是rtmp或者http开头m3u8结尾的视频流).本地摄像 ...

  10. Qt开源作品28-邮件发送工具

    一.前言 邮件发送工具是好多年前就开源出来的,核心就是调用最底层socket通信来实现的邮件发送程序,以前用C#写过,微软都封装好的,不知道底层是如何实现的,只知道调用方法,这次用C++实现了下,参考 ...