海豚调度器DolphinScheduler--单机版DolphinScheduler 入门到实践:从部署到使用

        Apache DolphinScheduler 是一个强大的分布式工作流任务调度系统,它以易用性和强大的功能在数据处理领域脱颖而出。本文将从部署到使用,详细介绍 DolphinScheduler 的各个方面,帮助您快速上手并有效利用这一工具。

一、DolphinScheduler 概述

        DolphinScheduler,由易观公司于2019年开源,是一个分布式、易扩展的可视化DAG工作流任务调度平台。它通过有向无环图(DAG)来描述任务之间的依赖关系,支持任务调度、任务编排以及定时任务,非常适合用于数据仓库、数据集成等场景。

二、DolphinScheduler 架构

组件:

海豚调度器DolphinScheduler 核心组件及其功能解析

架构图:

三、部署模式

DolphinScheduler 支持多种部署模式,包括:

  1. 单机模式:所有服务运行在同一个进程中,内置ZooKeeper和H2数据库,适合快速体验。
  2. 伪集群模式:在单台机器上部署所有服务,但ZooKeeper和数据库需单独安装。
  3. 集群模式:在多台机器上部署服务,支持多个Master和Worker,适合生产环境。

 这里我们主要介绍单机模式。

四、安装部署

海豚调度器DolphinScheduler--搭建单机版DolphinScheduler实战指南

海豚调度器DolphinScheduler单机版快速启动脚本--ds.sh搭建与使用教程-CSDN博客

单机模式部署

  1. 环境准备:确保JDK环境已配置。
  2. 下载并解压:从官网下载DolphinScheduler,解压到指定目录。
  3. 启动服务:执行启动脚本,一键启动所有服务。

五、使用 DolphinScheduler

安全中心

队列:

了解一下

租户管理:管理执行任务的用户。

出现以下错误

需要启动Hadoop集群的hdfs

start-dfs.sh  启动hadoop集群

用户管理:管理操作DolphinScheduler的用户。

可以使用普通用户登录ds

 Worker分组:管理Worker节点的分组。

 告警组:设置任务执行情况的通知组。

添加组内成员:

 

上传资源提示“存储未启用”如何开启HDFS

1.修改配置文件

这个软件下面有很多的服务,将每一个服务下的common.properties中的内容全部修改一遍

其中bigdata01是你虚拟机的名称

修改standalone-server下的common.properties

resource.storage.type=HDFS
resource.storage.upload.base.path=/dolphinscheduler
resource.hdfs.fs.defaultFS=hdfs://bigdata01:9820

2.修改HDFS权限

确保DolphinScheduler用户对HDFS路径有读写权限。

修改hdfs的权限:
hdfs dfs -chmod -R 777 /

 3.重启服务

配置完成后,需要重启DolphinScheduler的所有服务以应用更改。

重启服务
# 启动 Standalone Server 服务
./dolphinscheduler-daemon.sh start standalone-server
# 停止 Standalone Server 服务
./dolphinscheduler-daemon.sh stop standalone-server

执行任务

创建项目:在DolphinScheduler中创建项目。

创建任务:定义具体的任务脚本。

定义工作流:通过拖拽的方式,将任务组合成工作流。

下图为工作流配置页面,共包含三个模快,分别为工作流定义、工作流实例和任务实例。
工作流定义:用于定义工作流,包括工作流各节点任务详情及各节点依赖关系等。
工作流实例:工作流每执行一次就会生成一个工作流示例。此处可查看正在运行的工作流以及已经完成的工作流。
任务实例:工作流中的一个节点任务,每执行一次就会生成一个任务实例。此处可用于查看正在执行的节点任务以及已经完成的节点任务。

image.png

创建A任务

image.png


依次创建B任务,和C任务

image.png


将这三个任务,进行任务编排:

image.png


点击保存按钮,出现保存界面:

image.png


定义任务结束:

image.png

执行工作流:启动并监控工作流的执行。

任务必须先上线才能执行,只有下线才能编辑

点击上线,并没有运行,需要点击--执行

此时任务实例就会出现:

假如你的任务运行了,但是没有工作流实例,只提示成功,可以查看一下是否为内存不够了。

worker 192.168.233.128:1234 current cpu load average 0.43 is too high or available memory 0.17G is too low

提升一下内存即可。

定时任务

创建定时任务:设置任务的执行计划。

上线定时任务:激活定时任务,使其按计划执行。

 

查看定时任务是否运行了:

 当Linux的系统时间,不对的时候,定时任务,普通任务都会受到影响

在Linux黑窗口运行

同步时间的两个命令:
systemctl restart chronyd

ntpdate time1.aliyun.com

六、结语

        DolphinScheduler 是一个功能丰富、易于使用的分布式工作流调度系统。通过本文的介绍,您应该能够对 DolphinScheduler 有一个全面的了解,并在实际工作中有效利用它来管理和调度任务。无论是单机模式的快速体验,还是集群模式的大规模部署,DolphinScheduler 都能满足您的需求。

### 海豚调度器的工作流程与使用方法 #### 工作流程概述 海豚调度器是一种分布式任务调度框架,主要用于管理和执行复杂的批处理任务。其核心工作流程可以分为以下几个方面: 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、付费专栏及课程。

余额充值