SeaTunnel Edge Agent 安装包下载与源码构建完整指南
【免费下载链接】seatunnelSeaTunnel is a multimodal, high-performance, distributed, massive data integration tool.项目地址: https://gitcode.com/GitHub_Trending/se/seatunnel
本篇指南面向需要在边缘主机上部署 SeaTunnel Edge Agent 的运维与开发人员,系统讲解 Edge Agent 独立安装包的获取方式:从环境准备、官方二进制 tarball 下载,到基于当前仓库源码构建、目录结构确认与安装后衔接,全程附带可复制命令与源码级佐证。读完即可在边缘主机上获得一个可直接运行 Edge Agent 的安装根目录。
Edge Agent 是 SeaTunnel 面向边缘场景的轻量数据采集组件:在仅能本机访问数据源的边缘主机上采集数据,经 WAL 缓冲后,通过 EdgeSocket 行协议发送到正在运行的 SeaTunnel 作业(详见 Edge Agent 简介)。与主分发包apache-seatunnel-<version>-bin.tar.gz不同,Edge Agent 以独立 tarball 发布,本指南的每一步都对应当前仓库中可验证的实现。
步骤 1:环境准备
在边缘主机上,Edge Agent 的运行依赖极少,只需满足以下三项:
| 项目 | 要求 | 说明 |
|---|---|---|
| Java | JDK 8 或 11(更高版本 LTS 一般可用) | 需正确设置JAVA_HOME,启动脚本直接调用java |
| 磁盘 | queue.sqlite-path(WAL 与位点)及日志目录可写 | WAL 是 Edge Agent 本地出站队列的持久化机制 |
| 网络 | 边缘主机可访问output.endpoint配置的 EdgeSocket 地址 | 数据最终通过 EdgeSocket 行协议发送给 Engine 侧作业 |
磁盘项的queue.sqlite-path即 SQLite WAL 缓冲数据库文件路径,默认值为data/wal.db,见示例配置 seatunnel-edge-agent/config/agent.yaml 中queue段的注释;日志默认写入安装根目录下的log/。所谓"位点"指文件采集的读取位置(source position),与 WAL 行一起持久化,二者都落在 SQLite 数据库中。
需要注意:边缘主机不需要安装完整的 SeaTunnel Engine 分发包。Edge Agent 是独立的轻量常驻进程,只负责"采集 → 缓冲 → 发送",完整管道编排发生在 Engine 集群侧。
步骤 2:下载二进制包
Edge Agent 以独立 tarball 发布,与主 SeaTunnel 分发包分离,文件名为:
apache-seatunnel-edge-agent-<version>-bin.tar.gz在官方下载页提供后,可执行以下命令下载并解压(<seatunnel-version>替换为目标版本号,如2.3.x):
export version="<seatunnel-version>" wget "https://archive.apache.org/dist/seatunnel/${version}/apache-seatunnel-edge-agent-${version}-bin.tar.gz" tar -xzf "apache-seatunnel-edge-agent-${version}-bin.tar.gz" cd "apache-seatunnel-edge-agent-${version}"解压后,安装根目录是包含bin/、config/、starter/的目录。
:::tip 安装根目录变量 下文中的EDGE_AGENT_HOME即指该安装根目录。启动脚本按自身路径解析目录(见 seatunnel-edge-agent.sh,脚本以BASH_SOURCE为基准向上解析出BASE_DIR);建议导出EDGE_AGENT_HOME便于运维与 systemd 配置。 :::
步骤 3:源码构建
若需要自定义构建、验证最新代码或离线分发,可从源码构建安装包:
git clone https://github.com/apache/seatunnel.git cd seatunnel ./mvnw clean package -pl seatunnel-dist -am -DskipTests -Dskip.spotless=true构建产物路径:
seatunnel-dist/target/apache-seatunnel-edge-agent-<version>-bin.tar.gz将 tarball 拷贝到边缘主机并解压即可。构建过程由 seatunnel-dist/pom.xml 中的edge-agent-binassembly 执行生成(finalName 为apache-seatunnel-edge-agent-${project.version},同时生成edge-agent-src源码包)。
构建说明与注意事项
-pl seatunnel-dist -am:只构建分发模块及其依赖模块,避免全量构建整个仓库;-DskipTests:跳过测试以加速构建;-Dskip.spotless=true:跳过代码风格检查(spotless),如需提交修改则不应跳过;- 构建前需确保本机具备 JDK 与 Maven 环境,仓库自带
./mvnwMaven Wrapper,无需单独安装 Maven。
无需执行 install-plugin
与主 SeaTunnel 分发包不同,Edge Agent不需要执行bin/install-plugin.sh。原因可从 seatunnel-edge-agent-starter/pom.xml 验证:内置的输入采集、传输与序列化能力(seatunnel-common、seatunnel-api、seatunnel-edge-agent-transport、seatunnel-edge-agent-connector)已作为依赖打入seatunnel-edge-agent-starter.jar,开箱即用,无需外部插件目录。
步骤 4:确认目录结构
解压后应得到如下目录结构:
apache-seatunnel-edge-agent-<version>/ bin/ seatunnel-edge-agent.sh seatunnel-edge-agent.cmd config/ agent.yaml # 示例配置 log4j2.properties starter/ seatunnel-edge-agent-starter.jar logging/ # 日志依赖 README.md各组成部分的打包来源可在 assembly-edge-agent-bin.xml 中一一对应:
bin/:来自仓库seatunnel-edge-agent/bin目录(含 Linux 启动脚本与 Windows 批处理脚本),fileMode为0755保证可执行;config/:来自仓库seatunnel-edge-agent/config目录,即 agent.yaml 示例配置与log4j2.properties日志配置;starter/seatunnel-edge-agent-starter.jar:由seatunnel-edge-agent-starter模块打包而成(见 assembly-edge-agent-bin.xml 的 dependencySet 输出映射),这是 Edge Agent 的主可运行 JAR;starter/logging/:打包了 SLF4J 与 Log4j2 相关日志依赖(slf4j-api、jcl-over-slf4j、log4j-api、log4j-core、log4j-slf4j-impl),见 assembly-edge-agent-bin.xml;README.md:来自仓库seatunnel-edge-agent模块。
扩展(高级):lib/ 目录
默认安装包不含lib/目录。仅当你自行构建扩展插件时,可将额外 jar 放入lib/。主 JAR 通过maven-shade-plugin打成 fat jar(见 seatunnel-edge-agent-starter/pom.xml),并将日志依赖排除在 shade 之外、改由starter/logging/提供,这种拆分保证了扩展 jar 的类加载隔离与日志一致性。
安装后衔接:验证与启动
拿到安装包后,可按 部署指南 完成生产部署,要点包括:
- 导出
EDGE_AGENT_HOME与PATH(建议写入/etc/profile.d/edge-agent.sh); - 编辑
$EDGE_AGENT_HOME/config/agent.yaml,至少配置input.paths与output(transport 类型时须配置endpoint与token); - 在 Engine 侧提交含 EdgeSocket Source 的作业,监听地址与 token 与 Agent 的
output.endpoint一致; - 执行
sh bin/seatunnel-edge-agent.sh start启动,日志中出现BOOTSTRAP_READY即表示启动成功。
从源码确认,启动脚本还支持一系列环境变量覆盖默认路径(EDGE_AGENT_CONFIG、EDGE_AGENT_PID_FILE、EDGE_AGENT_ID_FILE、EDGE_AGENT_LOG_FILE、EDGE_AGENT_LOG_CONFIG、EDGE_AGENT_LOG_DIR、EDGE_AGENT_APP_LOG_NAME、EDGE_AGENT_STARTUP_READY_TIMEOUT_S),多实例部署时正是通过为每个实例指定独立的配置、PID 文件与 WAL 路径来实现隔离(见 seatunnel-edge-agent.sh)。
相关文档导航
- 快速开始:本地 Console 验证 → 接入 Engine 的完整上手流程
- 部署指南:生产环境部署检查清单与多实例部署
- 配置参数说明:agent.yaml 全量参数表
- 输入配置指南 与 输出配置指南:按场景编写 YAML
- 架构概览:WAL、投递语义与 Engine 边界
- EdgeSocket Source:Engine 端接收协议
- 运维指南:启停、日志与排障
【免费下载链接】seatunnelSeaTunnel is a multimodal, high-performance, distributed, massive data integration tool.项目地址: https://gitcode.com/GitHub_Trending/se/seatunnel
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考