利用已有的 PostgreSQL 和 ZooKeeper 服务,启动dolphinscheduler-standalone-server3.1.9 镜像
Apache DolphinScheduler 是一个分布式易扩展的可视化DAG工作流任务调度开源系统。适用于企业级场景,提供了一个可视化操作任务、工作流和全生命周期数据处理过程的解决方案。
Apache DolphinScheduler 旨在解决复杂的大数据任务依赖关系,并为应用程序提供数据和各种 OPS 编排中的关系。 解决数据研发ETL依赖错综复杂,无法监控任务健康状态的问题。 DolphinScheduler 以 DAG(Directed Acyclic Graph,DAG)流式方式组装任务,可以及时监控任务的执行状态,支持重试、指定节点恢复失败、暂停、恢复、终止任务等操作。
1.模块介绍
dolphinscheduler-master master模块,提供工作流管理和编排服务。
dolphinscheduler-worker worker模块,提供任务执行管理服务。
dolphinscheduler-alert 告警模块,提供 AlertServer 服务。
dolphinscheduler-api web应用模块,提供 ApiServer 服务。
dolphinscheduler-common 通用的常量枚举、工具类、数据结构或者基类
dolphinscheduler-dao 提供数据库访问等操作。
dolphinscheduler-extract extract模块,包含master/worker/alert的sdk
dolphinscheduler-service service模块,包含Quartz、Zookeeper、日志客户端访问服务,便于server模块和api模块调用
dolphinscheduler-ui 前端模块
2.环境
CPU:Hygon C86 7285 32-core Processor
操作系统:麒麟操作系统
Docker版本:28.2.2
Docker compose版本:2.37.2
Dolphinscheduler版本:3.1.9
3.网络要求
DolphinScheduler正常运行提供如下的网络端口配置:
组件 | 默认端口 | 说明 |
MasterServer | 5678 | 非通信端口,只需本机端口不冲突即可 |
WorkerServer | 1234 | 非通信端口,只需本机端口不冲突即可 |
ApiApplicationServer | 12345 | 提供后端通信端口 |
4.特点
简单易用
可视化 DAG: 用户友好的,通过拖拽定义工作流的,运行时控制工具
模块化操作: 模块化有助于轻松定制和维护。
丰富的使用场景
支持多种任务类型: 支持Shell、MR、Spark、SQL等10余种任务类型,支持跨语言,易于扩展
丰富的工作流操作: 工作流程可以定时、暂停、恢复和停止,便于维护和控制全局和本地参数。
High Reliability
高可靠性: 去中心化设计,确保稳定性。 原生 HA 任务队列支持,提供过载容错能力。 DolphinScheduler 能提供高度稳健的环境。
High Scalability
高扩展性: 支持多租户和在线资源管理。支持每天10万个数据任务的稳定运行。
5.在postgresql数据库中执行对应表结构
表结构从github下载,dolphinscheduler_postgresql
docker run --privileged=true -itd --name dss -p 12345:12345 -p 25333:25333 -e DATABASE="postgresql" -e SPRING_DATASOURCE_URL="jdbc:postgresql://IP:5432/registry" -e SPRING_DATASOURCE_USERNAME="registry" -e SPRING_DATASOURCE_PASSWORD="1234~" -e SPRING_JACKSON_TIME_ZONE="UTC" -e TZ=Asia/Shanghai -e REGISTRY_ZOOKEEPER_CONNECT_STRING="IP:2181" apache/dolphinscheduler-standalone-server:3.1.9
5.1 参数说明
--privileged=true
: 给容器赋予扩展权限,使其可以访问主机的所有设备,这在需要更高系统权限的情况下使用。-itd
: 这是三个选项的组合:
-i
或--interactive
:保持STDIN开放,即使未连接也保持容器运行。-t
或--tty
:分配一个伪TTY(终端)。-d
或--detach
:后台运行容器,并打印容器ID。--name dss
: 指定容器名称为dss
,方便后续操作时引用该容器。-p 12345:12345 -p 25333:25333
: 端口映射,将宿主机的端口映射到容器内的对应端口,这里分别映射了两个端口,即宿主机的12345端口映射到容器内的12345端口,以及宿主机的25333端口映射到容器内的25333端口。-e DATABASE="postgresql"
: 设置环境变量DATABASE
的值为postgresql
,表明要使用的数据库类型是 PostgreSQL。-e SPRING_DATASOURCE_URL="jdbc:postgresql://IP:5432/registry"
: 设置Spring框架的数据源URL,指向PostgreSQL数据库的位置和数据库名。-e SPRING_DATASOURCE_USERNAME="registry"
和-e SPRING_DATASOURCE_PASSWORD="1234~"
: 分别设置连接数据库的用户名和密码。-e SPRING_JACKSON_TIME_ZONE="UTC"
: 配置Jackson JSON库的时间序列化/反序列化时区为UTC。-e TZ=Asia/Shanghai
: 设置容器内的时区为中国上海时间。-e REGISTRY_ZOOKEEPER_CONNECT_STRING="IP:2181"
: 设置与ZooKeeper服务连接的字符串,指定了ZooKeeper服务器的地址和端口,用于分布式协调服务。apache/dolphinscheduler-standalone-server:3.1.9
: 使用的镜像名称及其标签,表示基于Apache DolphinScheduler单机版本的Docker镜像,版本号为3.1.9。