k8s离线环境部署DolphinScheduler+SeaTunnel
0.前言在一个大数据调度系统中任务和数据的调度与编排是一个非常重要的环节。在而今的开源时代使用DolphinSchedulerSeaTunnel这样的黄金组合可以满足我们对大数据系统建设初期的各种畅想。作为一名大数据行业的小白笔者也来演练一下如何在企业内网中如何快速搭建出DolphinSchedulerSeaTunnel并用一个简单的小示例实践一下。本文中的部署环境k8s版本1.23.15helm版本3.16.2harbor镜像仓库1.DolphinScheduler部署今天是2026年2月12号的星期四目前DolphinScheduler(DS)的最新版本为3.4.0最新稳定的版本为3.1.9。从稳定性的角度出发本文中也采用DS的稳定版3.1.9。部署时DS参考官方的此连接https://dolphinscheduler.apache.org/en-us/docs/3.1.9/guide/installation/kubernetes执行以下命令下载源码#克隆DS代码gitclone https://github.com/apache/dolphinscheduler.git#如果拉不动就配置http代理重新拉gitclone -c http.proxyhttp://192.168.1.66:7078 -c https.proxyhttp://192.168.1.66:7078 https://github.com/apache/dolphinscheduler.git#切换到3.1.9的taggitcheckout3.1.9#切换到部署脚本目录cddeploy/kubernetes/dolphinscheduler/再执行下面的命令执行helm操作#添加helm仓库源helm repoaddbitnami https://charts.bitnami.com/bitnami#同步当前目录下的所有charthelm dependency update.#如果同步失败可尝试配置http代理再次同步HTTP_PROXYhttp://192.168.1.66:7078HTTPS_PROXYhttp://192.168.1.66:7078 helm dependency update.同步chart成功后会有以上信息输出。如果上面的命令由于网络原因安装失败可通过代理先将原镜像下载之后再上传到harbor的方式解决。步骤为#查看依赖镜像helm template . | grep “image:” | awk ‘{print $2}’ | tr -d ‘’ | sort | uniq输出为busybox:1.30 docker.io/bitnami/postgresql:11.11.0-debian-10-r71 docker.io/bitnami/zookeeper:3.6.2-debian-10-r185 dolphinscheduler.docker.scarf.sh/apache/dolphinscheduler-alert-server:3.1.9 dolphinscheduler.docker.scarf.sh/apache/dolphinscheduler-api:3.1.9 dolphinscheduler.docker.scarf.sh/apache/dolphinscheduler-master:3.1.9 dolphinscheduler.docker.scarf.sh/apache/dolphinscheduler-tools:3.1.9 dolphinscheduler.docker.scarf.sh/apache/dolphinscheduler-worker:3.1.9得到清单后我们给docker配置好代理命令参考配置docker的网络代理)。再依次手动拉取docker pull dolphinscheduler.docker.scarf.sh/apache/dolphinscheduler-master:3.1.9 docker pull dolphinscheduler.docker.scarf.sh/apache/dolphinscheduler-worker:3.1.9 docker pull dolphinscheduler.docker.scarf.sh/apache/dolphinscheduler-api:3.1.9 docker pull dolphinscheduler.docker.scarf.sh/apache/dolphinscheduler-alert-server:3.1.9 docker pull dolphinscheduler.docker.scarf.sh/apache/dolphinscheduler-tools:3.1.9 docker pull bitnami/postgresql:11.11.0-debian-10-r71 docker pull bitnami/zookeeper:3.6.2-debian-10-r185 docker pull busybox:1.30再依次打上tagexport MY_HARBORdockerhub.haiyang.com/haiyang docker tag dolphinscheduler.docker.scarf.sh/apache/dolphinscheduler-master:3.1.9 $MY_HARBOR/dolphinscheduler-master:3.1.9 docker tag dolphinscheduler.docker.scarf.sh/apache/dolphinscheduler-api:3.1.9 $MY_HARBOR/dolphinscheduler-api:3.1.9 docker tag dolphinscheduler.docker.scarf.sh/apache/dolphinscheduler-alert-server:3.1.9 $MY_HARBOR/dolphinscheduler-alert-server:3.1.9 docker tag dolphinscheduler.docker.scarf.sh/apache/dolphinscheduler-tools:3.1.9 $MY_HARBOR/dolphinscheduler-tools:3.1.9 docker tag docker.io/bitnami/postgresql:11.11.0-debian-10-r71 $MY_HARBOR/postgresql:11.11.0-debian-10-r71 docker tag busybox:1.30 $MY_HARBOR/busybox:1.30 docker tag dolphinscheduler.docker.scarf.sh/apache/dolphinscheduler-worker:3.1.9 $MY_HARBOR/dolphinscheduler-worker:3.1.9 docker tag public.ecr.aws/bitnami/zookeeper:3.6.2-debian-10-r185 $MY_HARBOR/zookeeper:3.6.2-debian-10-r185再依次push到私服docker push $MY_HARBOR/dolphinscheduler-master:3.1.9 docker push $MY_HARBOR/dolphinscheduler-api:3.1.9 docker push $MY_HARBOR/dolphinscheduler-alert-server:3.1.9 docker push $MY_HARBOR/dolphinscheduler-tools:3.1.9 docker push $MY_HARBOR/postgresql:11.11.0-debian-10-r71 docker push $MY_HARBOR/busybox:1.30 docker push $MY_HARBOR/dolphinscheduler-worker:3.1.9 docker push $MY_HARBOR/zookeeper:3.6.2-debian-10-r185替换values.yaml中registry的镜像仓库地址# 执行替换使用 | 作为定界符避免仓库地址中的 / 导致冲突 sed -i s|registry: \dolphinscheduler.docker.scarf.sh/apache\|registry: \$MY_HARBOR\|g values.yamlpostgresql和zookeeper的需要单独处理编辑values.yaml文件在各自的节点中添加对应的image配置postgresql: enabled: true image: registry: dockerhub.haiyang.com repository: haiyang/postgresql tag: 11.11.0-debian-10-r71 ……省略…… zookeeper: enabled: true image: registry: dockerhub.haiyang.com repository: haiyang/zookeeper tag: 3.6.2-debian-10-r185busybox部分的处理#找到对应的模块文件 grep -r busybox templates/ --- templates/_helpers.tpl: image: busybox:1.30替换命令sed -i “s|image: busybox:1.30|image: $MY_HARBOR/busybox:1.30|g” templates/_helpers.tpl至此我们已经完成了dolphinscheduler、postgresql、zookeeper、busybox这些镜像地址的替换。再修改一下pod中路径配置从mycluster修改到本地文件(临时修改重启pod后数据会丢失)sed -i ‘/resource.hdfs.fs.defaultFS:/ s|hdfs://mycluster:8020|file:///|’ values.yaml接下来就可以用helm来安装DS了。安装DS到指定的k8s命名空间中最终pod状态截图如下所有pod均ready测试时可以用port-forward命令映射出端口验证一下kubectl port-forward --address 0.0.0.0 -n test svc/dolphinscheduler-api 12345:12345或直接将service的类型修改为NodePortkubectl patch svc dolphinscheduler-api -n bigdata -p ‘{“spec”:{“type”:“NodePort”}}’之后再访问对应的端口如http://192.168.1.168:35246/dolphinscheduler/ui默认用户名和密码为admin/dolphinscheduler123登录进去看一下2.SeaTunnel部署SeaTunnel(ST)目前的最新版本为2.3.12。为了快速安装这里也还是使用helm。https://seatunnel.apache.org/docs/2.3.12/start-v2/kubernetes/helmSeaTunnel官方指定的helm仓库中最新的为2.3.10我们也使用这个版本的helm进行安装export VERSION2.3.10 #创建seatunnel_helm mkdir seatunnel_helm #切换到seatunnel_helm cd seatunnel_helm #拉取seatunnel的helm镜像 helm pull oci://registry-1.docker.io/apache/seatunnel-helm --version ${VERSION} #如果拉取失败可以尝试通过配置代理尝试如 HTTP_PROXYhttp://192.168.1.66:7078 HTTPS_PROXYhttp://192.168.1.66:7078 helm pull oci://registry-1.docker.io/apache/seatunnel-helm --version ${VERSION} #解压seatunnel的helm包 tar -xvf seatunnel-helm-${VERSION}.tgz cd seatunnel-helm与前面部署DS类似的部署前也需要将对应的seatunnel镜像拉取并推送到docker的私有仓库中。#获取出seatunnel这个helm镜像的docker镜像 helm template . | grep image: | awk {print $2} | tr -d | sort | uniq #拉取对应的seatunnel镜像 docker pull apache/seatunnel:2.3.10 #定义私有仓库地址 export MY_HARBORdockerhub.haiyang.com/haiyang #打tag docker tag apache/seatunnel:2.3.10 $MY_HARBOR/apache/seatunnel:2.3.10 #推送到私服 docker push $MY_HARBOR/apache/seatunnel:2.3.10再替换helm的values.yaml中的镜像地址sed -i “s|registry: “apache/seatunnel”|registry: “$MY_HARBOR/apache/seatunnel”|g” values.yaml替换好镜像后安装并启动seatunnel#安装seatunnel到bigdata这个命名空间中 helm install seatunnel . -n bigdata最后再查看一下状态kubectl get pod -n bigdata -wSeaTunnel的master和worker都启动就绪了。如果要访问http接口可直接执行以下命令将8080端口映射出来kubectl expose deployment seatunnel-master --typeNodePort --nameseatunnel-web --port8080 --target-port8080 -n bigdata分别运行两个http接口测试一下curl http://127.0.0.1:25323/running-jobscurl http://127.0.0.1:25323/system-monitoring-information3.DSST联合小示例前面两个步骤我们已经完成了DolphinScheduler和SeaTunnel在内网环境中的部署接下来再用一个小示例验证一下。尽管在DS的界面中也有可以直接运行SeaTunnel的组件但它要求SeaTunnel和DolphinScheduler需要部署在同一个机器中这与目前的部署结构不匹配。但好在SeaTunnel提供了http接口则我们可以使用http接口的方式向SeaTunnel提交任务。参考的SeaTunnel接口submit-a-job其本质在dolphinscheduler的容器中向seatunnel-web这个service发http请求。为了确保方案的可行性我们可以先通过手动运行的方式验证下kubectl exec -it dolphinscheduler-api-6447777469-dhd8r -n bigdata – bashcurl -X GET http://seatunnel-web:8080/running-jobs确认无误后再在DS的界面中添加SHELL节点尝试提交一个SeaTunnel的JOB。在SHELL的脚本内容中输入以下内容curl -X POST http://seatunnel-web:8080/submit-job \ -H Content-Type: application/json \ -d { env: { job.mode: batch }, source: [ { plugin_name: FakeSource, plugin_output: fake, row.num: 100, schema: { fields: { name: string, age: int, card: int } } } ], transform: [], sink: [ { plugin_name: Console, plugin_input: [fake] } ] }截图为之后再运行此工作流显示为从日志上可以看出任务已经提交成功并返回了一个jobId。但需要注意的是如果是在生产环境中用http的方式提交SeaTunnel的任务还需要做一些额外的处理这是因为DS 节点的成功/失败状态仅代表“提交成功/失败”而不是“数据同步成功/失败”关于此处的详细方案这里不再进一步展开。如要实现在K8S下比较完备的整合流程可参考此链接https://dev.to/chen_debra_3060b21d12b1b0/sync-api-data-to-your-data-lake-with-seatunnel-dolphinscheduler-30aj

相关新闻

cpolar帮助R3PLAY打通公网,不再束缚!听歌自由!

cpolar帮助R3PLAY打通公网,不再束缚!听歌自由!

R3PLAY(R3PLAYX)是一款主打 “减法设计” 的第三方网易云播放器,支持 Windows、macOS、Linux 系统及 Docker 部署,核心功能就是剥离广告、会员推广等冗余内容,只保留封面展示、歌词同步和播放控制,所有歌曲…

2026/7/7 0:57:37 阅读更多 →
风控策略的“不可能三角”:通过率、逾期率、规模,到底先保谁?

风控策略的“不可能三角”:通过率、逾期率、规模,到底先保谁?

当KPI互相打架,老板既要又要,策略分析师如何破局?    “这个季度的通过率必须提升5%!”    “逾期率又飙高了,赶紧收紧策略!”    “业务规模要扩大,别卡那么严!”    作为风控策略分析师,这些话是不是格外熟悉?    业务目标、风控指标、规模扩张,三方力量…

2026/7/7 12:01:37 阅读更多 →
YOLO26涨点改进| TGRS 2026 | 独家创新首发、特征融合改进篇| 引入GSFM 全局语义感知融合模块,突出小目标并抑制复杂背景干扰,适合小目标检测、红外小目标检测、小目标分割,高效涨点

YOLO26涨点改进| TGRS 2026 | 独家创新首发、特征融合改进篇| 引入GSFM 全局语义感知融合模块,突出小目标并抑制复杂背景干扰,适合小目标检测、红外小目标检测、小目标分割,高效涨点

一、本文介绍 🔥本文给大家介绍利用GSFM 全局语义感知融合模块改进YOLO26网络模型,可以在高层特征阶段增强全局语义建模能力,使网络在更大范围内建立特征依赖关系,从整体背景分布中重新评估局部响应强度,从而突出小目标并抑制复杂背景干扰。该模块通过全局上下文引导的特…

2026/7/7 20:10:28 阅读更多 →

最新新闻

当Golang遇见LLM:构建高并发推理服务的工程实践

当Golang遇见LLM:构建高并发推理服务的工程实践

一、为什么是Golang?AI基础设施层的"新宠" 过去两年,AI应用的部署形态正在发生显著变化。如果说2023年是"大模型元年",那么2024年后就是"AI智能体落地之年"。然而,在这一波技术浪潮中,语…

2026/7/8 13:29:28 阅读更多 →
开发成本直降90%,艾络迅OEM App方案助力客户10分钟打造品牌专属App

开发成本直降90%,艾络迅OEM App方案助力客户10分钟打造品牌专属App

随着IoT加速普及,App已不只是设备控制工具,更是品牌连接用户、承载服务与推动增长的重要入口。对智能硬件企业来说,拥有一款自有品牌App,正成为提升用户体验与市场竞争力的关键能力。然而,传统App开发普遍存在周期长、…

2026/7/8 13:29:28 阅读更多 →
2026跨境电商新手避坑指南:从选品到获客的5个冷门实操技巧别踩雷

2026跨境电商新手避坑指南:从选品到获客的5个冷门实操技巧别踩雷

不少刚入局跨境电商的新手,总觉得跟着网上的热门攻略抄作业就能稳赚,真等到把货发出去、广告投出去才发现,钱花了流水漂,半点水花都没见着。其实很多被忽略的冷门细节,才是决定新手能不能熬过前三个月存活期的关键。 第…

2026/7/8 13:29:28 阅读更多 →
医疗设备智能防漏费管控系统整体说明

医疗设备智能防漏费管控系统整体说明

整套系统采用去传感器化,依靠智能图像识别分析一体化管控方案,操作简单实现无感操作,长期运行稳定可靠。一、管理软件核心优势软硬件一体管控,形成事前校验、全程监控、事后追溯的全流程分段管理体系。支持多类操作系统兼容&#…

2026/7/8 13:27:27 阅读更多 →
MP2672A芯片与STM32F373VC的电池管理系统设计

MP2672A芯片与STM32F373VC的电池管理系统设计

1. MP2672A芯片深度解析与选型考量MP2672A是MPS公司推出的一款专为双节锂离子串联电池设计的高度集成开关电池充电器IC。这款芯片在便携式设备电源管理领域具有显著优势,其核心功能可概括为三大模块:升压充电管理、NVDC电源路径管理和集成电池平衡电路。…

2026/7/8 13:21:25 阅读更多 →
直流电机高精度控制:TLE 6208-6 G与dsPIC33EP方案解析

直流电机高精度控制:TLE 6208-6 G与dsPIC33EP方案解析

1. 项目背景与核心组件选型在工业自动化和机器人控制领域,直流电机因其结构简单、控制方便、成本低廉等优势被广泛应用。但传统PWM调速方案存在响应速度慢、转速波动大等问题,特别是在负载变化频繁的场景下表现尤为明显。这正是我们需要使用TLE 6208-6 G…

2026/7/8 13:19:25 阅读更多 →

日新闻

3大核心能力重塑《明日方舟》游戏体验:MAA自动化助手的革命性突破

3大核心能力重塑《明日方舟》游戏体验:MAA自动化助手的革命性突破

3大核心能力重塑《明日方舟》游戏体验:MAA自动化助手的革命性突破 【免费下载链接】MaaAssistantArknights 《明日方舟》小助手,全日常一键长草!| A one-click tool for the daily tasks of Arknights, supporting all clients. 项目地址: …

2026/7/8 0:00:48 阅读更多 →
MyBatis 批量操作深度优化——从 N+1 到批处理的全路径

MyBatis 批量操作深度优化——从 N+1 到批处理的全路径

MyBatis 批量操作深度优化——从 N1 到批处理的全路径 一、从"功能正确"到"性能可接受"——MyBatis 批量操作的三段式进化 MyBatis 在日常增删改查场景中几乎是无感的——实体映射直观、SQL 控制灵活。但当数据量从千级上升到十万级、百万级,许…

2026/7/8 0:00:48 阅读更多 →
工业负载控制方案:TPD2015FN与PIC18F45K22应用解析

工业负载控制方案:TPD2015FN与PIC18F45K22应用解析

1. 工业负载控制方案概述在工业自动化、电机驱动和照明控制等高需求场景中,可靠地控制电感和电阻负载是核心挑战之一。TPD2015FN作为东芝的8通道高端智能功率开关IC,配合PIC18F45K22微控制器,能够构建一套稳定、高效的负载控制系统。这套组合…

2026/7/8 0:02:48 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/7 14:24:45 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/7 12:34:47 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/7 15:59:06 阅读更多 →

月新闻