尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
SeaTunnel 引擎(Zeta)本地快速开始:单机跑通第一个批处理作业
SeaTunnel 引擎Zeta本地快速开始单机跑通第一个批处理作业【免费下载链接】seatunnelSeaTunnel is a multimodal, high-performance, distributed, massive data integration tool.项目地址: https://gitcode.com/GitHub_Trending/se/seatunnelSeaTunnel 引擎Zeta是 SeaTunnel 的默认内置引擎既可以在一台机器上以 Local 模式快速验证配置、连接器与处理链路也可以部署为多节点集群承接测试、预发和生产任务。本文以 SeaTunnel 引擎快速开始 为主线完整演示从下载部署、安装插件、编写 HOCON 作业配置到运行与结果验证的全过程并额外给出「MySQL 到 Doris」的真实批处理示例与 Local 模式的底层行为说明帮助你一次性跑通首个 SeaTunnel 引擎作业。两种使用方式与适用场景SeaTunnel Engine 支持两种组织方式本文对应表格中的两种路径使用方式适用场景下一步单机快速开始在一台机器上验证配置、连接器或处理链路继续阅读本文的单机快速开始部分集群部署在测试、预发或生产环境中运行多节点任务跳转到 SeaTunnel Engine(Zeta) 安装部署从引擎部署模式看参见 deployment.mdZeta 支持本地模式、混合集群模式和分离集群模式三种形态。Local 模式只用于测试每个任务都会启动一个独立进程任务运行完成后进程退出混合集群模式中 Master 与 Worker 同进程且所有节点可参与选举分离集群模式则将 Master 服务与 Worker 服务拆分为独立进程是官方建议的生产部署形态。开始前建议先看如果你是第一次接触 SeaTunnel 文档建议按下列顺序建立整体路径感快速入门总览安装部署作业配置指南本文示例链路使用FakeSource、FieldMapper和Console三个插件不依赖任何外部中间件适合在单机上完成端到端验证。第一部分单机快速开始Local 模式Local 模式适合在单台机器上快速验证安装、连接器和作业配置下面的命令统一使用-m local启动 SeaTunnel Engine。启动时系统会在提交作业的进程中直接拉起引擎服务来运行作业作业完成后进程随之退出无需预部署任何集群组件。步骤 1部署 SeaTunnel 及连接器在开始前请确保已按照 部署 中的描述下载并部署 SeaTunnel安装 Java 8 或 11其他高于 Java 8 的版本理论上也可以工作并设置JAVA_HOME下载二进制安装包seatunnel-version-bin.tar.gz并解压从 2.2.0-beta 版本开始二进制包不再默认提供连接器依赖首次使用需要手动安装插件。如果你已经安装了完整插件可以直接复用若只是为了以最短路径跑通本文示例只需connector-fake与connector-console两个插件即可。步骤 2安装示例所需插件编辑${SEATUNNEL_HOME}/config/plugin_config只保留示例需要的两个插件--seatunnel-connectors-- connector-fake connector-console --end--然后执行安装脚本脚本会读取plugin_config并从仓库拉取对应 JAR 到${SEATUNNEL_HOME}/connectors/目录sh bin/install-plugin.sh所有支持的连接器及其在plugin_config中对应的配置名称可以在${SEATUNNEL_HOME}/connectors/plugins-mapping.properties仓库根目录下即 plugin-mapping.properties中查到。也可以从 Apache Maven Repository 手动下载连接器 JAR 放入connectors/目录效果相同。步骤 3添加作业配置文件定义作业编辑config/v2.batch.config.template仓库中的模板见 v2.batch.config.template它决定了 SeaTunnel 启动后数据输入、处理和输出的方式及逻辑。下面是与示例链路完全一致的配置env { parallelism 1 job.mode BATCH } source { FakeSource { plugin_output fake row.num 16 schema { fields { name string age int } } } } transform { FieldMapper { plugin_input fake plugin_output fake1 field_mapper { age age name new_name } } } sink { Console { plugin_input fake1 } }对这份配置的关键参数做一点源码级说明env 区块parallelism控制作业并行度job.mode取BATCH或STREAMING。仓库自带的模板还展示了checkpoint.interval 10000毫秒的写法可作为流式作业参考。FakeSource.row.num每个并行度生成的数据条数。在 FakeSourceOptions.java 中可以看到row.num的默认值是 5split.num每个并行度生成的 split 数默认 1split.read-interval两次 split 读取间隔毫秒默认 1。此外还支持rows按行列表指定输出内容、string.template、int.template等模板类参数以及int.min/int.max等数值范围参数方便按需构造更贴近真实场景的测试数据。plugin_output/plugin_inputSeaTunnel 通过表名将上游输出与下游输入串联起来。FakeSource输出名为fakeFieldMapper从fake读取、输出到fake1Console再从fake1读取形成一条完整的数据流。FieldMapper.field_mapper字段映射与重命名规则这里将name重命名为new_nameage保持不变。Consolesink打印到日志。其可配置项定义在 ConsoleSinkOptions.java其中log.print.data默认true是否打印数据log.print.delay.ms默认 0每条数据打印间隔毫秒。关于配置的更多信息可查看 配置的基本概念。步骤 4运行 SeaTunnel 应用程序通过以下命令启动应用:::tip 从 2.3.1 版本开始seatunnel.sh中的-e参数已被废弃请改用-m参数。-m local对应的引擎模式定义在 MasterType.javaLOCAL(local)。 :::cd apache-seatunnel-${version} ./bin/seatunnel.sh --config ./config/v2.batch.config.template -m local查看输出运行命令后控制台中打印的内容即是命令运行成功或失败的标志。SeaTunnel 控制台会打印类似下面的日志2022-12-19 11:01:45,417 INFO org.apache.seatunnel.connectors.seatunnel.console.sink.ConsoleSinkWriter - output rowType: new_nameSTRING, ageINT 2022-12-19 11:01:46,489 INFO org.apache.seatunnel.connectors.seatunnel.console.sink.ConsoleSinkWriter - subtaskIndex0 rowIndex1: SeaTunnelRow#tableId-1 SeaTunnelRow#kindINSERT: CpiOd, 8520946 2022-12-19 11:01:46,490 INFO org.apache.seatunnel.connectors.seatunnel.console.sink.ConsoleSinkWriter - subtaskIndex0 rowIndex2: SeaTunnelRow#tableId-1 SeaTunnelRow#kindINSERT: eQqTs, 1256802974 2022-12-19 11:01:46,490 INFO org.apache.seatunnel.connectors.seatunnel.console.sink.ConsoleSinkWriter - subtaskIndex0 rowIndex3: SeaTunnelRow#tableId-1 SeaTunnelRow#kindINSERT: UsRgO, 2053193072 2022-12-19 11:01:46,490 INFO org.apache.seatunnel.connectors.seatunnel.console.sink.ConsoleSinkWriter - subtaskIndex0 rowIndex4: SeaTunnelRow#tableId-1 SeaTunnelRow#kindINSERT: jDQJj, 1993016602 2022-12-19 11:01:46,490 INFO org.apache.seatunnel.connectors.seatunnel.console.sink.ConsoleSinkWriter - subtaskIndex0 rowIndex5: SeaTunnelRow#tableId-1 SeaTunnelRow#kindINSERT: rqdKp, 1392682764 2022-12-19 11:01:46,490 INFO org.apache.seatunnel.connectors.seatunnel.console.sink.ConsoleSinkWriter - subtaskIndex0 rowIndex6: SeaTunnelRow#tableId-1 SeaTunnelRow#kindINSERT: wCoWN, 986999925 2022-12-19 11:01:46,490 INFO org.apache.seatunnel.connectors.seatunnel.console.sink.ConsoleSinkWriter - subtaskIndex0 rowIndex7: SeaTunnelRow#tableId-1 SeaTunnelRow#kindINSERT: qomTU, 72775247 2022-12-19 11:01:46,490 INFO org.apache.seatunnel.connectors.seatunnel.console.sink.ConsoleSinkWriter - subtaskIndex0 rowIndex8: SeaTunnelRow#tableId-1 SeaTunnelRow#kindINSERT: jcqXR, 1074529204 2022-12-19 11:01:46,490 INFO org.apache.seatunnel.connectors.seatunnel.console.sink.ConsoleSinkWriter - subtaskIndex0 rowIndex9: SeaTunnelRow#tableId-1 SeaTunnelRow#kindINSERT: AkWIO, 1961723427 2022-12-19 11:01:46,490 INFO org.apache.seatunnel.connectors.seatunnel.console.sink.ConsoleSinkWriter - subtaskIndex0 rowIndex10: SeaTunnelRow#tableId-1 SeaTunnelRow#kindINSERT: hBoib, 929089763 2022-12-19 11:01:46,490 INFO org.apache.seatunnel.connectors.seatunnel.console.sink.ConsoleSinkWriter - subtaskIndex0 rowIndex11: SeaTunnelRow#tableId-1 SeaTunnelRow#kindINSERT: GSvzm, 827085798 2022-12-19 11:01:46,491 INFO org.apache.seatunnel.connectors.seatunnel.console.sink.ConsoleSinkWriter - subtaskIndex0 rowIndex12: SeaTunnelRow#tableId-1 SeaTunnelRow#kindINSERT: NNAYI, 94307133 2022-12-19 11:01:46,491 INFO org.apache.seatunnel.connectors.seatunnel.console.sink.ConsoleSinkWriter - subtaskIndex0 rowIndex13: SeaTunnelRow#tableId-1 SeaTunnelRow#kindINSERT: EexFl, 1823689599 2022-12-19 11:01:46,491 INFO org.apache.seatunnel.connectors.seatunnel.console.sink.ConsoleSinkWriter - subtaskIndex0 rowIndex14: SeaTunnelRow#tableId-1 SeaTunnelRow#kindINSERT: CBXUb, 869582787 2022-12-19 11:01:46,491 INFO org.apache.seatunnel.connectors.seatunnel.console.sink.ConsoleSinkWriter - subtaskIndex0 rowIndex15: SeaTunnelRow#tableId-1 SeaTunnelRow#kindINSERT: Wbxtm, 1469371353 2022-12-19 11:01:46,491 INFO org.apache.seatunnel.connectors.seatunnel.console.sink.ConsoleSinkWriter - subtaskIndex0 rowIndex16: SeaTunnelRow#tableId-1 SeaTunnelRow#kindINSERT: mIJDt, 995616438验证要点首行output rowType: new_nameSTRING, ageINT说明FieldMapper的字段重命名已生效后续 16 行ConsoleSinkWriter输出对应row.num 16生成的 16 条数据字段已被重命名为new_name与age批任务在写完全部数据后正常退出进程结束。Local 模式的行为与运维注意点Local 模式下每个任务都会启动一个独立的进程任务运行完成后进程退出。该模式有以下限制参见 local-mode-deployment.md不支持任务的暂停、恢复不支持获取任务列表查看不支持通过命令取消作业只能通过 Kill 进程的方式终止任务。但每个任务由单独进程控制不会出现任务之间相互影响的情况适合对任务稳定性有强烈要求的场景。相关运维细节运行日志输出到提交作业进程的标准输出如需调整 JVM 参数可修改$SEATUNNEL_HOME/config/jvm_client_options该文件中的参数会应用到所有通过seatunnel.sh提交的作业包括 Local 与集群模式也可以在启动时追加例如./bin/seatunnel.sh --config ./config/v2.batch.config.template -m local -DJvmOption-Xms2G -Xmx2G。扩展示例从 MySQL 到 Doris 批处理模式跑通最小链路后把 Source 和 Sink 换成真实连接器即可处理真实业务数据。下面以经典的 MySQL 到 Doris 批同步为例。步骤 1下载连接器在${SEATUNNEL_HOME}/config/plugin_config中加入连接器名称然后执行安装命令也可以从 Apache Maven Repository 手动下载连接器 JAR 放入connectors/目录最后确认connector-jdbc、connector-doris都在${SEATUNNEL_HOME}/connectors/目录下。# 配置连接器名称 --seatunnel-connectors-- connector-jdbc connector-doris --end--# 安装连接器 sh bin/install-plugin.sh步骤 2放入 MySQL 驱动下载 MySQL JDBC 驱动 JARmysql-connector-java并放置在${SEATUNNEL_HOME}/lib/目录下Jdbcsource 才能加载驱动建立连接。步骤 3添加作业配置文件定义作业cd seatunnel/job/ vim st.confenv { parallelism 2 job.mode BATCH } source { Jdbc { url jdbc:mysql://localhost:3306/test driver com.mysql.cj.jdbc.Driver connection_check_timeout_sec 100 user user password pwd table_path test.table_name query select * from test.table_name } } sink { Doris { fenodes doris_ip:8030 username user password pwd database test_db table table_name sink.enable-2pc true sink.label-prefix test-cdc doris.config { format json read_json_by_linetrue } } }参数说明Jdbc sourceurl为 MySQL 连接串driver为驱动类名8.x 驱动为com.mysql.cj.jdbc.Driveruser/password为账号口令query为取数 SQLtable_path指定源表路径Doris sinkfenodes为 Doris FE 地址ip:portdatabase/table为目标库表sink.enable-2pc true开启两阶段提交以保证写入一致性sink.label-prefix设置事务标签前缀doris.config中format json与read_json_by_line true指定 JSON 按行流式写入。关于配置的更多信息可查看 配置的基本概念。步骤 4运行 SeaTunnel 应用程序cd seatunnel/ ./bin/seatunnel.sh --config ./job/st.conf -m local查看输出运行结束后SeaTunnel 控制台会打印作业统计信息作为成功或失败的标志*********************************************** Job Statistic Information *********************************************** Start Time : 2024-08-13 10:21:49 End Time : 2024-08-13 10:21:53 Total Time(s) : 4 Total Read Count : 1000 Total Write Count : 1000 Total Failed Count : 0 ***********************************************Total Read Count与Total Write Count均为 1000 且Total Failed Count为 0说明 1000 条数据已完整同步到 Doris。如需进一步优化作业请参照对应连接器的使用文档调整参数。第二部分集群部署如果已完成单机验证希望在多节点环境中运行 SeaTunnel Engine请继续阅读 SeaTunnel Engine(Zeta) 安装部署。集群部署文档集中说明了以下内容不同部署模式的适用场景包括 Local 模式、混合集群模式和分离集群模式混合集群模式与分离集群模式的部署步骤选择部署模式时的建议。建议如果只是想在一台机器上快速验证配置和任务链路使用本文中的 Local 模式即可如果需要多节点运行、资源隔离或更贴近测试和生产环境的部署方式请进入集群部署文档继续操作。下一步如果想先建立整体路径感可以返回阅读 快速入门总览当准备把示例 Source 和 Sink 替换成真实连接器时建议继续阅读 作业配置指南想直接看端到端核对的教程可以先看 MySQL CDC 到 Kafka再按链路形态选择 MySQL CDC 到 Doris、JDBC 到 S3、Kafka 到 Iceberg、Http 到 JDBC、File 到 StarRocks 和 多表 CDC开始编写自己的配置文件选择想要的连接器并根据连接器文档配置参数如果要部署多节点 SeaTunnel Engine 集群请继续阅读 SeaTunnel Engine(Zeta) 安装部署如果想进一步了解 SeaTunnel Engine请参阅 SeaTunnel 引擎。【免费下载链接】seatunnelSeaTunnel is a multimodal, high-performance, distributed, massive data integration tool.项目地址: https://gitcode.com/GitHub_Trending/se/seatunnel创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED

相关推荐

Kotlin Multiplatform跨平台开发实战与鸿蒙适配

Kotlin Multiplatform跨平台开发实战与鸿蒙适配

1. Kotlin Multiplatform 技术全景解析Kotlin Multiplatform(KMP)是JetBrains推出的跨平台解决方案,它允许开发者使用Kotlin编写可在多个平台上共享的业务逻辑代码。与Flutter、React Native等跨平台框架不同,KMP采用"共享逻…

📅 2026/9/20 7:24:21
chezmoi 模板函数 `dopplerProjectJson`:以结构化 JSON 方式获取 Doppler 密钥

chezmoi 模板函数 `dopplerProjectJson`:以结构化 JSON 方式获取 Doppler 密钥

开发工具CLI配置管理 【免费下载链接】chezmoi Manage your dotfiles across multiple diverse machines, securely. 项目地址: https://gitcode.com/gh_mirrors/ch/chezmoi 点击查看 免费下载 dopplerProjectJson 是 chezmoi 内置的模板函数,用于在渲染…

📅 2026/9/20 7:24:21
AI Agent技术架构解析:从LLM到工具调用的全流程实践

AI Agent技术架构解析:从LLM到工具调用的全流程实践

1. AI Agent 技术架构全景解析当我们在2023年首次部署那个能自动处理客户投诉的AI Agent时,系统在第一个月就消化了23万条工单——这个数字相当于15名人工客服全年的工作量。这背后正是LLM(大语言模型)与规划、记忆、工具三大模块的协同效应。…

📅 2026/9/20 7:24:21
MORE NEWS

更多资讯

📰

3 步用 AssetRipper 完成 Unity 资源提取:从游戏包体到可复用资产

3 步用 AssetRipper 完成 Unity 资源提取:从游戏包体到可复用资产 【免费下载链接】AssetRipper GUI application to analyze game files 项目地址: https://gitcode.com/GitHub_Trending/as/AssetRipper AssetRipper 是一款开源免费的图形化工具&#xff0c…

📰

温室热环境CFD仿真技术与工程应用

1. 温室效应传热分析项目概述这个传热学仿真项目聚焦于温室效应这一典型热环境问题的数值模拟。作为农业设施和建筑节能领域的关键课题,温室热环境分析需要综合考虑太阳辐射、空气对流、土壤传热等多物理场耦合作用。通过CFD(计算流体力学)仿…

📰

企业级Agent平台:从超级个体到超级团队的治理与编排

提到企业级的 Agent 平台,很多人的第一反应还停留在“一个能替你写邮件、查资料的聊天机器人”上。腾讯云 WorkBuddy Enterprise 这个产品名里最有分量的恰恰是 Enterprise 这个词——它要解决的不是单个智能体怎么更聪明,而是组织里几十上百个智能体如何…

📰

ROS2国产化迁移实战:DDS适配、平台移植与QoS调优

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

Agent Governance Toolkit OWASP 合规指南:ASI Top 10、LLM Top 10 与 MCP Top 10 的完整映射与安全控制落地

人工智能AI AgentAI 安全治理策略引擎Agent 沙箱认证鉴权 【免费下载链接】agent-governance-toolkit AI Agent Governance Toolkit — Policy enforcement, zero-trust identity, execution sandboxing, and reliability engineering for autonomous AI agents. Covers 10/10 …

📰

QQ空间说说备份完整教程:把全部历史说说、评论和配图导到本地

QQ空间说说备份完整教程:把全部历史说说、评论和配图导到本地 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 换一部新手机、整理一次旧照片时,你多半会想起 QQ …

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬