Seatunnel系列之:部署Seatunnel

Seatunnel系列之:部署Seatunnel

  • 一、步骤一:准备环境
  • 二、步骤二:下载SeaTunnel
  • 三、步骤三:安装连接器插件
  • 四、quick-start-seatunnel-engine
    • 1.添加作业配置文件来定义作业
    • 2.运行 SeaTunnel 应用程序
  • 五、quick-start-flink
    • 1.部署和配置Flink
    • 2.添加作业配置文件来定义作业
    • 3.运行 SeaTunnel 应用程序
  • 六、quick-start-spark
    • 1.Spark的部署和配置
    • 2.添加作业配置文件来定义作业
    • 3.运行 SeaTunnel 应用程序

一、步骤一:准备环境

在开始本地运行之前,您需要确保您已经安装了 SeaTunnel 所需的以下软件:

  • 安装Java(Java 8或11,高于Java 8的其他版本理论上也可以工作)并设置JAVA_HOME。

二、步骤二:下载SeaTunnel

进入seatunnel下载页面,下载最新版本的分发包seatunnel--bin.tar.gz

  • SeaTunnel下载地址

或者您可以通过终端下载

export version="2.3.4"
wget "https://archive.apache.org/dist/seatunnel/${version}/apache-seatunnel-${version}-bin.tar.gz"
tar -xzvf "apache-seatunnel-${version}-bin.tar.gz"

三、步骤三:安装连接器插件

从2.2.0-beta开始,二进制包默认不提供连接器依赖,所以第一次使用时,需要执行以下命令安装连接器:(当然也可以手动下载连接器从 Apache Maven 存储库下载,然后手动移动到连接器/seatunnel 目录)。

sh bin/install-plugin.sh 2.3.4

如果需要指定连接器的版本,以2.3.4为例,需要执行

sh bin/install-plugin.sh 2.3.4

通常你不需要所有的connector插件,所以你可以通过配置config/plugin_config来指定你需要的插件,例如你只需要connector-console插件,那么你可以修改plugin.properties为

--seatunnel-connectors--
connector-console
--end--

如果您想让示例应用程序正常工作,您需要添加以下插件

--seatunnel-connectors--
connector-fake
connector-console
--end--

您可以在下面找到所有支持的连接器和相应的plugin_config配置名称
${SEATUNNEL_HOME}/connectors/plugins-mapping.properties.

注意:

如果您想通过手动下载连接器来安装连接器插件,则需要特别注意以下事项

Connectors目录包含以下子目录,如果不存在,需要手动创建

flink
flink-sql
seatunnel
spark

如果您想手动安装V2连接器插件,只需下载您需要的V2连接器插件并将其放在seatunnel目录中

四、quick-start-seatunnel-engine

1.添加作业配置文件来定义作业

编辑config/v2.batch.config.template,决定了seatunnel启动后数据输入、处理、输出的方式和逻辑。以下是配置文件的示例,与上面提到的示例应用程序相同。

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

2.运行 SeaTunnel 应用程序

您可以通过以下命令启动应用程序

cd "apache-seatunnel-${version}"
./bin/seatunnel.sh --config ./config/v2.batch.config.template -e local

查看输出:运行命令时,您可以在控制台中看到其输出。您可以认为这是命令运行成功与否的标志。

SeaTunnel 控制台将打印一些日志,如下所示:

2022-12-19 11:01:45,417 INFO  org.apache.seatunnel.connectors.seatunnel.console.sink.ConsoleSinkWriter - output rowType: name<STRING>, age<INT>
2022-12-19 11:01:46,489 INFO  org.apache.seatunnel.connectors.seatunnel.console.sink.ConsoleSinkWriter - subtaskIndex=0 rowIndex=1:  SeaTunnelRow#tableId=-1 SeaTunnelRow#kind=INSERT: CpiOd, 8520946
2022-12-19 11:01:46,490 INFO  org.apache.seatunnel.connectors.seatunnel.console.sink.ConsoleSinkWriter - subtaskIndex=0 rowIndex=2: SeaTunnelRow#tableId=-1 SeaTunnelRow#kind=INSERT: eQqTs, 1256802974
2022-12-19 11:01:46,490 INFO  org.apache.seatunnel.connectors.seatunnel.console.sink.ConsoleSinkWriter - subtaskIndex=0 rowIndex=3: SeaTunnelRow#tableId=-1 SeaTunnelRow#kind=INSERT: UsRgO, 2053193072
2022-12-19 11:01:46,490 INFO  org.apache.seatunnel.connectors.seatunnel.console.sink.ConsoleSinkWriter - subtaskIndex=0 rowIndex=4: SeaTunnelRow#tableId=-1 SeaTunnelRow#kind=INSERT: jDQJj, 1993016602
2022-12-19 11:01:46,490 INFO  org.apache.seatunnel.connectors.seatunnel.console.sink.ConsoleSinkWriter - subtaskIndex=0 rowIndex=5: SeaTunnelRow#tableId=-1 SeaTunnelRow#kind=INSERT: rqdKp, 1392682764
2022-12-19 11:01:46,490 INFO  org.apache.seatunnel.connectors.seatunnel.console.sink.ConsoleSinkWriter - subtaskIndex=0 rowIndex=6: SeaTunnelRow#tableId=-1 SeaTunnelRow#kind=INSERT: wCoWN, 986999925
2022-12-19 11:01:46,490 INFO  org.apache.seatunnel.connectors.seatunnel.console.sink.ConsoleSinkWriter - subtaskIndex=0 rowIndex=7: SeaTunnelRow#tableId=-1 SeaTunnelRow#kind=INSERT: qomTU, 72775247
2022-12-19 11:01:46,490 INFO  org.apache.seatunnel.connectors.seatunnel.console.sink.ConsoleSinkWriter - subtaskIndex=0 rowIndex=8: SeaTunnelRow#tableId=-1 SeaTunnelRow#kind=INSERT: jcqXR, 1074529204
2022-12-19 11:01:46,490 INFO  org.apache.seatunnel.connectors.seatunnel.console.sink.ConsoleSinkWriter - subtaskIndex=0 rowIndex=9: SeaTunnelRow#tableId=-1 SeaTunnelRow#kind=INSERT: AkWIO, 1961723427
2022-12-19 11:01:46,490 INFO  org.apache.seatunnel.connectors.seatunnel.console.sink.ConsoleSinkWriter - subtaskIndex=0 rowIndex=10: SeaTunnelRow#tableId=-1 SeaTunnelRow#kind=INSERT: hBoib, 929089763
2022-12-19 11:01:46,490 INFO  org.apache.seatunnel.connectors.seatunnel.console.sink.ConsoleSinkWriter - subtaskIndex=0 rowIndex=11: SeaTunnelRow#tableId=-1 SeaTunnelRow#kind=INSERT: GSvzm, 827085798
2022-12-19 11:01:46,491 INFO  org.apache.seatunnel.connectors.seatunnel.console.sink.ConsoleSinkWriter - subtaskIndex=0 rowIndex=12: SeaTunnelRow#tableId=-1 SeaTunnelRow#kind=INSERT: NNAYI, 94307133
2022-12-19 11:01:46,491 INFO  org.apache.seatunnel.connectors.seatunnel.console.sink.ConsoleSinkWriter - subtaskIndex=0 rowIndex=13: SeaTunnelRow#tableId=-1 SeaTunnelRow#kind=INSERT: EexFl, 1823689599
2022-12-19 11:01:46,491 INFO  org.apache.seatunnel.connectors.seatunnel.console.sink.ConsoleSinkWriter - subtaskIndex=0 rowIndex=14: SeaTunnelRow#tableId=-1 SeaTunnelRow#kind=INSERT: CBXUb, 869582787
2022-12-19 11:01:46,491 INFO  org.apache.seatunnel.connectors.seatunnel.console.sink.ConsoleSinkWriter - subtaskIndex=0 rowIndex=15: SeaTunnelRow#tableId=-1 SeaTunnelRow#kind=INSERT: Wbxtm, 1469371353
2022-12-19 11:01:46,491 INFO  org.apache.seatunnel.connectors.seatunnel.console.sink.ConsoleSinkWriter - subtaskIndex=0 rowIndex=16: SeaTunnelRow#tableId=-1 SeaTunnelRow#kind=INSERT: mIJDt, 995616438

五、quick-start-flink

1.部署和配置Flink

请先下载Flink(要求版本>=1.12.0)。

配置 SeaTunnel:更改 config/seatunnel-env.sh 中的设置,它基于引擎在部署时安装的路径。将 FLINK_HOME 更改为 Flink 部署目录。

2.添加作业配置文件来定义作业

编辑config/v2.streaming.conf.template,决定了seatunnel启动后数据输入、处理、输出的方式和逻辑。以下是配置文件的示例,与上面提到的示例应用程序相同。

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

3.运行 SeaTunnel 应用程序

您可以通过以下命令启动应用程序

flink 版本在 1.12.x 和 1.14.x 之间

cd "apache-seatunnel-${version}"
./bin/start-seatunnel-flink-13-connector-v2.sh --config ./config/v2.streaming.conf.template

flink 版本在 1.15.x 和 1.16.x 之间

cd "apache-seatunnel-${version}"
./bin/start-seatunnel-flink-15-connector-v2.sh --config ./config/v2.streaming.conf.template

查看输出:运行命令时,您可以在控制台中看到其输出。您可以认为这是命令运行成功与否的标志。

SeaTunnel 控制台将打印一些日志,如下所示:

fields : name, age
types : STRING, INT
row=1 : elWaB, 1984352560
row=2 : uAtnp, 762961563
row=3 : TQEIB, 2042675010
row=4 : DcFjo, 593971283
row=5 : SenEb, 2099913608
row=6 : DHjkg, 1928005856
row=7 : eScCM, 526029657
row=8 : sgOeE, 600878991
row=9 : gwdvw, 1951126920
row=10 : nSiKE, 488708928
row=11 : xubpl, 1420202810
row=12 : rHZqb, 331185742
row=13 : rciGD, 1112878259
row=14 : qLhdI, 1457046294
row=15 : ZTkRx, 1240668386
row=16 : SGZCr, 94186144

六、quick-start-spark

1.Spark的部署和配置

请先下载Spark(要求版本>=2.4.0)。

配置 SeaTunnel:更改 config/seatunnel-env.sh 中的设置,它基于引擎在部署时安装的路径。将 SPARK_HOME 更改为 Spark 部署目录。

2.添加作业配置文件来定义作业

编辑config/seatunnel.streaming.conf.template,决定了seatunnel启动后数据输入、处理、输出的方式和逻辑。以下是配置文件的示例,与上面提到的示例应用程序相同。

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

3.运行 SeaTunnel 应用程序

您可以通过以下命令启动应用程序

spark 2.4.x

cd "apache-seatunnel-${version}"
./bin/start-seatunnel-spark-2-connector-v2.sh \
--master local[4] \
--deploy-mode client \
--config ./config/v2.streaming.conf.template

spark3.x.x

cd "apache-seatunnel-${version}"
./bin/start-seatunnel-spark-3-connector-v2.sh \
--master local[4] \
--deploy-mode client \
--config ./config/v2.streaming.conf.template

查看输出:运行命令时,您可以在控制台中看到其输出。您可以认为这是命令运行成功与否的标志。

SeaTunnel 控制台将打印一些日志,如下所示:

fields : name, age
types : STRING, INT
row=1 : elWaB, 1984352560
row=2 : uAtnp, 762961563
row=3 : TQEIB, 2042675010
row=4 : DcFjo, 593971283
row=5 : SenEb, 2099913608
row=6 : DHjkg, 1928005856
row=7 : eScCM, 526029657
row=8 : sgOeE, 600878991
row=9 : gwdvw, 1951126920
row=10 : nSiKE, 488708928
row=11 : xubpl, 1420202810
row=12 : rHZqb, 331185742
row=13 : rciGD, 1112878259
row=14 : qLhdI, 1457046294
row=15 : ZTkRx, 1240668386
row=16 : SGZCr, 94186144

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

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

相关文章

Gateway网关在url参数带有特殊字符的情况下转发失败(响应400)

本文主要分享了&#xff0c;SpringCloud Gateway网关在url参数带有空格或者特殊字符的情况下&#xff0c;转发失败导致响应错误码400的解决方案。 响应400错误码的2种场景&#xff1a; 1.参数带空格&#xff0c;Gateway会误认为该空格是切割符&#xff0c;如?phone 135****6…

QT使用dumpcpp为COM生成h及cpp的方式,COM是C#的dll注册的

目录 1.C#的dll注册为COM&#xff0c;采用bat的方式 2.通过qt的dumpcpp来生成h及cpp文件 3.h文件和cpp文件处理。 台达数控系统的C#的dll dumpcpp用的tlb文件 dumpcpp生成的原生h文件 dumpcpp生成的原生cpp dump生成后的的原生cpp文件修改后的cpp文资源 dump生成后的的…

AI短视频矩阵系统介绍|罐头鱼AI视频批量生成

智能化管理&#xff0c;轻松批量剪辑短视频&#xff01; 近年来&#xff0c;随着短视频营销行业的发展&#xff0c;我们推出了一款AI短视频矩阵系统&#xff0c;旨在帮助用户管理、剪辑和发布短视频内容&#xff0c;从而提升品牌影响力。让我们来看看这款系统都提供了哪些功能&…

C:数据结构王道

初始化顺序表&#xff08;顺序表中元素为整型&#xff09;&#xff0c;里边的元素是1,2,3&#xff0c;然后通过scanf读取一个元素&#xff08;假如插入的是6&#xff09;&#xff0c;插入到第2个位置&#xff0c;打印输出顺序表&#xff0c;每个元素占3个空格&#xff0c;格式为…

在哪些领域中最需要使用 OCR 识别技术?

光学字符识别&#xff08;OCR&#xff09;技术能够将不同格式的印刷或手写文本转换为机器编码的文本&#xff0c;这一技术在许多领域都发挥着重要作用&#xff0c;尤其是在需要大量处理文档和图像数据的场景中。以下是一些最需要使用OCR识别技术的领域&#xff1a; 1. 办公自动…

Windows Server 各版本搭建终端服务器实现远程访问(03~19)

一、Windows Server 2003 左下角开始➡管理工具➡管理您的服务器&#xff0c;点击添加或删除角色 点击下一步 勾选自定义&#xff0c;点击下一步 点击终端服务器&#xff0c;点击下一步 点击确定 重新登录后点击确定 点击开始➡管理工具➡计算机管理&#xff0c;展开本地用户…

openssl3.2 - 官方demo学习 - encode - ec_encode.c

文章目录 openssl3.2 - 官方demo学习 - encode - ec_encode.c概述笔记产生ecc私钥产生ecc公钥测试工程备注备注END openssl3.2 - 官方demo学习 - encode - ec_encode.c 概述 官方demos/encode 目录中给了2个例子工程 功能是载入(RSA/ECC)公钥, 然后自己就可以拿内存中的公钥对…

mupdf渲染过程(一):颜色

mupdf除了解析PDF功能之外&#xff0c;还有一个强大的功能就是渲染文字和图像&#xff0c;本文介绍mupdf渲染过程中涉及到的颜色问题&#xff1a;包括颜色空间&#xff0c;颜色转换&#xff0c;lcms的使用。 1.初始化 mupdf初始化第一步是实例化fz_context *ctx&#xff0c;fz…

利用适配器模式使用第三方库

文章目录 一、为什么要使用适配器模式二、适配器模式使用第三方库示例 一、为什么要使用适配器模式 适配器模式是一种设计模式&#xff0c;用于将一个类的接口转换成客户端所期望的另一个接口。适配器模式的主要目的是使不兼容的接口能够一起工作。以下是一些使用适配器的原因&…

OpenCV开发笔记(七十七):相机标定(二):通过棋盘标定计算相机内参矩阵矫正畸变摄像头图像

若该文为原创文章&#xff0c;转载请注明原文出处 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/136616551 各位读者&#xff0c;知识无穷而人力有穷&#xff0c;要么改需求&#xff0c;要么找专业人士&#xff0c;要么自己研究 红胖子(红模仿)的博…

TypeScript的基础类型和高级类型梳理总结

一、基础类型 1、boolean 布尔类型 表示逻辑值&#xff0c;可以是 true 或 false let isBoolean:boolean false 2、number 数字类型 表示整数和浮点数&#xff08;例如 42&#xff0c;3.14159&#xff09;&#xff0c;不论是十进制、二进制、八进制还是十六进制&#xff…

Rust镜像配置

cargo镜像配置 找到.cargo目录并创建config文件,输入以下内容即可,windows一般在C:\Users\用户目录\.cargo,linux执行vim ~/.cargo/config即可。然后将下面内容赋值粘贴进去 [source.crates-io] registry = "https://github.com/rust-lang/crates.io-index" rep…

Visual Studio 2022 配置“Debug|x64”的 Designtime 生成失败。IntelliSense 可能不可用。

今天写代码&#xff0c;无缘无故就给我整个这个错误出来&#xff0c;我一头雾水。 经过我几个小时的奋战&#xff0c;终于解决问题 原因就是这个Q_INTERFACES(&#xff09;宏&#xff0c;我本想使用Q_DECLARE_INTERFACE Q_INTERFACES这两个Qt宏实现不继承QObject也能使用qobjec…

C语言自学笔记17----结构体struct与位域与关键字typedef

C 语言结构体(struct) 为什么在C中使用结构&#xff1f; 假设您要存储有关一个人的信息&#xff1a;他/她的姓名&#xff0c;身份证号和薪水。您可以创建不同的变量name&#xff0c;citNo和salary存储此信息。 如果您需要存储多个人的信息怎么办&#xff1f;现在&#xff0c;你…

VSCode提交代码

VSCode提交代码方式&#xff1a; 先在电脑本地文件夹中打开git的bash窗口使用git clone https://github.com/xxxx/克隆仓库地址到本地&#xff0c;并生成一个项目的文件夹打开VSCode&#xff0c;点击文件按钮&#xff0c;打开加载项目的文件夹对于VSCode设置Git路径&#xff…

Three 材质纹理 (总结三)

THREE.MeshLambertMaterial&#xff08;网格 Lambert 材质&#xff09; 该材质使用基于非物理的Lambertian模型来计算反射率。可以用来创建暗淡的并不光亮的表面&#xff0c;该材质非常易用&#xff0c;而且会与场景中的光源产生反应。 MeshLambertMaterial属性 # .color : …

蓝桥杯刷题|02入门真题

[蓝桥杯 2022 省 B] 刷题统计 题目描述 小明决定从下周一开始努力刷题准备蓝桥杯竞赛。他计划周一至周五每天做 a 道题目&#xff0c;周六和周日每天做 b 道题目。请你帮小明计算&#xff0c;按照计划他将在第几天实现做题数大于等于 n 题? 输入格式 输入一行包含三个整数…

Linux之线程互斥

目录 一、问题引入 二、线程互斥 1、相关概念 2、加锁保护 1、静态分配 2、动态分配 3、锁的原理 4、死锁 三、可重入与线程安全 1、概念 2、常见的线程不安全的情况 3、常见的线程安全的情况 4、常见不可重入的情况 5、常见可重入的情况 6、可重入与线程安全联系…

google scholar谷歌学术搜索技巧合集【补充ing】

今天发现和百度学术更新速度差太多&#xff0c;引用数量也不对&#xff0c;故搜集谷歌学术搜索技巧&#xff0c;以尽快查找所需。 筛选合集&#xff1a; 谷歌学术高级搜索技巧大放送 - 知乎 Google Scholar 谷歌学术文献检索技巧总结 - 知乎 Google Scholar谷歌学术文献检索技…

Linux 部署 Samba 服务

一、Ubuntu 部署 Samba 1、安装 Samba # 更新本地软件包列表 sudo apt update# 安装Samba sudo apt install samba# 查看版本 smbd --version2、创建共享文件夹&#xff0c;并配置 Samba 创建需要共享的文件夹&#xff0c;并赋予权限&#xff1a; sudo mkdir /home/test sud…