一、介绍

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. PTA-1002

    原先主要错误: 没有考虑到有关0的相关情况 观看的大佬代码 整理思路 无非就是在相同的指数的情况下,系数相加 因为最后是要从大到小输出来. 注意 要对最后的结果进行四舍五入: PTA的英语题对英语不好 ...

  2. 一图一知之python3数据类型

    记录python数据类型和相关的一些知识点

  3. Windows的树形目录结构

    一.文件.文件夹(目录).逻辑盘.路径的概念 · 文件:是操作系统用来存储和管理信息的基本单位.每个文件都有一个名称,叫文件名.文件名通常由‌基本文件名和‌扩展名两部分组成,其中基本文件名用于说明文件 ...

  4. 你真的懂System.out.println()吗?

    简介 众所周知,Java语言是面向对象的,那如果让你用一行代码体现出来呢? 如果你能自己读懂System.out.println(),就真正了解了Java面向对象编程的含义. 面向对象编程即创建了对象 ...

  5. Flutter 长列表优化

    Flutter 长列表优化 固定列表和长列表的区别 固定列表中的组件,每次都会被重新构建 ListView.builder会按需构建列表元素,也就是只有那些可见得元素才会调用itemBuilder 构 ...

  6. 对比 ASP.NET Core 中的 HttpContext.Features 与 HttpContext.Items

    对比 ASP.NET Core 中的 HttpContext.Features 与 HttpContext.Items https://newbedev.com/httpcontext-feature ...

  7. Specifications动态查询

    [前言说明] 针对CRUD种的查询,因为我们的查询总是具有各种各样的筛选条件 为了我们的程序能够更加适应筛选条件的变化,SpringDataJpa提供了Specifications这种解决方案 Spe ...

  8. java -jar命令运行jar包时指定外部依赖jar包

    你们都知道一个java应用项目能够打包成一个jar,固然你必须指定一个拥有main函数的main class做为你这个jar包的程序入口.具体的方法是修改jar包内目录META-INF下的MANIFE ...

  9. shell脚本,主要是对输入参数检验

    usage(){  echo "\nUSAGE:\n"  echo "PmActivityReport.sh\t-type\t<latency|activity&g ...

  10. VisualSFM的配置与使用 & MeshLab的网格生成与纹理添加

    VisualSFM的配置与使用 & MeshLab的网格生成与纹理添加 翻译 搜索 复制