海豚调度器调用api接口启动工作流(亲试可用)

本文介绍了如何通过API接口启动DolphinScheduler的作业流程,包括获取API Token的步骤,以及如何在请求头中添加Token来调用startProcessInstance接口。详细解析了在1.3.5版本中启动工作流实例的接口使用方法,帮助读者实现自动化调度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、前言

在大数据时代,工作流调度器成为了数据管道和ETL任务中不可或缺的工具。DolphinScheduler作为一款强大的工作流调度器,支持多种任务类型和工作流的可视化管理。除了通过Web界面操作外,DolphinScheduler也提供了API接口,使得第三方系统集成和自动化脚本调用成为可能。

在工作需要通过api接口启动海豚调度器的工作流,由于生产环境的海豚调度器是1.3.5版本,不同版本的api有所不同,请根据实际进行调整。

二、DolphinScheduler API概览

DolphinScheduler的API主要用于以下方面:

  • 项目管理:创建、查询、删除项目。
  • 工作流定义:创建、更新、启动、停止工作流。
  • 任务实例:管理任务实例的执行状态。
  • 资源中心:管理UDF、工作流等资源。

三、获取API Token

使用DolphinScheduler API之前,需要先获取API Token,用于接口调用的认证。

步骤1:登录DolphinScheduler

登录到DolphinScheduler的Web界面。

步骤2:访问安全中心

在DolphinScheduler主界面,点击“安全中心”。

步骤3:令牌管理

### 海豚调度器工作流程与使用方法 #### 工作流程概述 海豚调度器是一种分布式任务调度框架,主要用于管理和执行复杂的批处理任务。其核心工作流程可以分为以下几个方面: 1. **任务定义** 用户通过图形化界面或者脚本文件定义任务及其依赖关系。这些任务可能涉及数据处理、ETL操作或其他计算逻辑[^1]。 2. **任务提交与分发** 定义好的任务会被提交至 `api-server` 进行解析并存储到数据库中。随后,任务被分配给相应的节点(如 Master 和 Worker),以便进一步执行[^2]。 3. **资源管理与调度** 在集群环境中,Master 节点负责协调多个 Worker 的运行状态以及任务的优先级安排。Zookeeper 则用于监控整个系统的健康状况和各组件之间的通信情况[^3]。 4. **任务执行与反馈** 各个 Worker 接收到具体任务后开始实际运算过程;完成后会向 Master 报告结果,并更新日志记录供后续审计或排查错误之用。 5. **异常处理机制** 如果某个阶段出现问题,则触发重策略或是人工介入干预措施来保障整体业务连续性。此外还提供了补数功能支持未完成部分重新加载或修正历史数据。 #### 使用教程概览 以下是基于官方文档整理的一个简化版入门指南: - **环境准备** - 下载最新版本软件包。 - 准备好 MySQL 数据库作为元数据仓库,并上传对应的 JDBC 驱动程序到指定目录下。 ```bash cp mysql-connector-java-8.x.jar /path/to/dolphinscheduler/api-server/libs/ ``` - **安装部署** - 解压压缩包并将配置文件调整适配本地网络条件。 - 初始化表结构并通过命令启动服务端口监听进程。 - **创建项目&作业流图设计** - 登陆 Web 控制台新建专属命名空间下的首个工程实例名称。 - 添加各类节点类型比如 Shell Script 或者 Spark Application 等构成完整的 DAG 图形表示形式。 - **测验证效果展示** - 设置定时计划表达式让系统自动周期循环调用预设规则集。 - 查看实时进度条变化趋势曲线图表呈现清晰明了的结果分析报告页面布局样式美观大方实用性强! ```python from pydolphin import DolphinSchedulerClient client = DolphinSchedulerClient(host="localhost", port=12345, username="admin", password="password") project_name = "example_project" workflow_name = "my_first_workflow" # Create a new project if it doesn't exist already. if not client.project_exists(project_name): client.create_project(project_name) tasks = [ {"name": "task_1", "type": "SHELL", "command": "echo Hello World"}, ] definition_id = client.define_process_definition(workflow_name, tasks) instance_id = client.start_instance(definition_id) status = client.query_instance_status(instance_id) print(f"Instance {instance_id} status is {status}") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大模型大数据攻城狮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值