使用DolphinScheduler调度Python任务

概述

  • 需求:在某个特定的时间运行Python(Anaconda)任务
    方案1:crontab来定时调度
    方案2:crontab没有便于操作的Web界面及报警等功能,于是引入DolphinScheduler

  • Apache DolphinScheduler是一个分布式去中心化,易扩展的可视化DAG工作流任务调度平台
    致力于解决数据处理流程中错综复杂的依赖关系,使调度系统在数据处理流程中开箱即用
    中文官网:https://dolphinscheduler.apache.org/zh-cn/

DolphinScheduler架构图

主要角色 主要职责
MasterServer DAG任务切分、任务提交监控;监听其它MasterServer和WorkerServer的健康状态
WorkerServer 任务的执行和提供日志服务
ZK Cluster MasterServer和WorkerServer启动时,会向Zookeeper注册临时节点
Alter 提供告警相关服务
API 处理前端UI层的请求
UI 提供Web操作界面

DolphinScheduler集群部署

部署规划 hadoop105 hadoop106 hadoop107 备注
MasterServer 1 1 端口(非通信的)默认5678
WorkerServer 1 1 1 端口(非通信的)默认1234
LoggerServer 1 1 1 日志服务,隶属WorkerServer
功能:日志分片查看、刷新、下载…
AlertServer 1 告警服务,暂时仅支持单机
ApiApplicationServer 1 提供后端通信,端口默认12345

DS依赖Java,集群部署依赖ZooKeeper
另外,本文还配置DS元数据存储到MySQL,资源存储到HDFS

1、准备工作

安装进程管理相关的命令,用于支持DolphinScheduler(每个节点都执行)

yum install -y psmisc

创建具有sudo权限的用户

https://yellow520.blog.youkuaiyun.com/article/details/115495027

集群用户免密登录(root和新创建的用户都要配)

https://blog.youkuaiyun.com/Yellow_python/article/details/110143502

2、下载DolphinScheduler

wget https://archive.apache.org/dist/dolphinscheduler/2.0.3/apache-dolphinscheduler-2.0.3-bin.tar.gz

解压

tar -zxvf apache-dolphinscheduler-2.0.3-bin.tar.gz

3、配置DolphinScheduler元数据存储在MySQL

MySQL建库ds和用户dolphinscheduler,自设密码

mysql -uroot -p
-- 创建数据库
CREATE DATABASE ds DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
-- 创建用户和网络允许,并设置密码
CREATE USER 'dolphinscheduler'@'%' IDENTIFIED BY 
DolphinScheduler 是一个由阿里巴巴集团开源的分布式任务调度平台,用于管理和调度各种任务,包括 Python 任务和 PySpark 任务。当需要编写 Python 任务流时,我们可以使用 DolphinScheduler 提供的 Python 调度器来实现。 编写 DolphinSchedulerPython 任务流可以通过以下步骤进行: 1. 在 DolphinScheduler 平台上创建一个 Python 任务流。登录 DolphinScheduler 平台后,点击任务流管理,然后点击新建任务流。给任务流起一个名称,并且选择 Python 任务流类型。 2. 在任务流中添加具体的任务。点击任务流后,点击添加任务按钮。在弹出的窗口中选择 Python 任务,并为任务指定一个名称。 3. 编写 Python 任务代码。在任务流中,选择刚刚创建的 Python 任务,并点击编辑按钮。在弹出的编辑窗口中,可输入 Python 代码来定义任务的具体逻辑。比如,可以导入所需的 Python 库,定义函数,进行相关的数据处理、计算或分析等。 4. 保存任务流和任务。在完成 Python 任务的编辑后,点击保存按钮来保存任务流和任务。 5. 配置任务流的调度规则。在任务流管理界面,点击任务流名称后面的调度按钮,设置任务流的调度规则,如执行周期、执行时间等,以便自动定时执行任务流。 通过以上步骤,我们可以实现 DolphinScheduler 中的 Python 任务流编写。在编写任务流时,需要根据具体的业务需求来设计逻辑,并且可以借助 Python 的强大功能来处理数据、实现计算或分析等任务。同时,DolphinScheduler 提供了灵活的调度规则设置,可以根据需求进行任务流的定时执行。 总而言之,通过 DolphinSchedulerPython 调度器,我们可以方便地编写 Python 任务流,实现各种数据处理、计算或分析任务,提高任务调度的效率和灵活性。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小基基o_O

您的鼓励是我创作的巨大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值