一、介绍

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. WiFi流量劫持—— 浏览任意页面即可中毒!

    大家都知道公共场所的Wifi安全性很差,但并不清楚究竟有多差.大多以为只要不上QQ.不登陆网站账号就没事了,看看新闻小说什么的应该毫无关系. 的确如此,看看新闻网页没有涉及任何敏感的账号信息.即便是数 ...

  2. canvas(八)绘制图片和坐标转换

    1.绘制图片 相关api及其参数:ctx.drawImage() 参数 说明 参数一 图片对象 参数二,三 可选,图片裁剪的基点(原图左上角为原点) 参数四,五 可选,图片裁剪区域的宽高(基于原图大小 ...

  3. 前后端数据传递之form-data

    前情 最近在项目开发中,跟服务端连调发现接口一直报错,服务端一直提示是数据没有传,而通过浏览器控制台发现数据是有传的. 坑 服务通过postman自测是OK的.经过和服务端一起定位发现服务端只接收以f ...

  4. VTK 平面裁剪

    有些时候需要显示零件内部情况,所有会对零件显示进行平面裁剪,这里用到了vtkPlane和vtkClipPolyData. vtkPlane是定义一个平面,vtkClipPolyData使用vtkPla ...

  5. 数据万象AVIF图片压缩 - 小程序省流量利器

    导语 微信小程序因其便捷的开发环境和天然的微信生态,使得越来越多企业平台通过小程序建立自己的业务.在小程序上使用图片非常广泛,但传统格式图片(如 JPG/PNG)占用空间大,加载速度慢,可能导致昂贵的 ...

  6. FineReport其他js记录

    1.js修改日期组件 背景色 边框 setTimeout(function () { var color = "#092347"; var fontColor = "wh ...

  7. 【转载】 Locust 官方文档

    链接:https://www.jianshu.com/p/40102e9a24cb 安装 一般直接通过 pip 就可以安装: $ pip install locust 注意: Locust 1.x 版 ...

  8. 龙哥量化:通达信财富币不够怎么办:K线训练营100%胜率,赚财富币

    通达信app的K线训练营中,[K线训练]和[K线对战]都需要花费[5财富币]进行训练,[K线对战]胜利的话可以获得10财富币.注意:是对战,对战,对战,那怎么才能每场都胜呢,哈哈,我们找到历史K线,对 ...

  9. dotnet最小webApi开发实践

    dotnet最小webApi开发实践 软件开发过程中,经常需要写一些功能验证代码.通常是创建一个console程序来验证测试,但黑呼呼的方脑袋界面,实在是不讨人喜欢. Web开发目前已是网络世界中的主 ...

  10. Detectron2使用

    Detectron2使用 Detectron2安装 git clone https://github.com/facebookresearch/detectron2.git cd detectron2 ...