大数据调度器--单机版Apache DolphinScheduler 入门到实践:进阶

)B和C都是打印的2023-7-20,唯独A打印的是2023-7-18因为A设置了局部变量,当一个任务有局部变量又有全局变量的时候,以局部变量的值为准就近原则日期Linux中获取前一天数据的命令date-d#391dayago#39+#39%y%m%d#39date1=date-d#391dayago#39+#39%y%m%d#39ApacheDolphinScheduler提供了一些时间相关的系统参数,方便定时调度使用
在现代数据处理和工作流管理中,Apache DolphinScheduler 以其强大的调度能力和易用性,成为了许多企业和开发者的首选工具。

v2-fe80a0d04ff6db9f12a6e984bfe637ca_720w


本文将深入探讨 DolpinScheduler 的进阶使用技巧,包括参数传递、资源中心管理、告警通知配置,以及如何在真实项目中高效使用 DolphinScheduler。


进阶使用

参数传递


参数传递是 DolphinScheduler 中的一项重要功能,它允许用户在任务之间共享数据。

  • 局部变量:仅在单个任务中有效,适用于特定任务的独立配置。

  • 全局变量:在多个任务间共享,适合跨任务传递日期、配置等通用信息。


局部变量-只针对单个任务



v2-1e9486363fff52786030ec4e91df3b0e_720w



工作流上线,执行,查看A的日志,发现打印了。


v2-1c276dab2476ddf3b90e2d89c8eb37cb_720w

全局变量-多个任务中都需要一个字段



v2-e216fa5caec4c54cbcbdf9c4ba25cb13_720w


v2-f0e2830c185b4f71957cecd08c05fd4d_720w
目前 ABC 任务都需要一个变量 dt

在保存工作流的时候,弹出来的界面可以指定全局变量。


v2-5d2d99842c57664a5e0c1deb7bcbe0d6_720w

执行结果:


v2-de52f2007329898b19e0d4742caf2c95_720w


B和C都是打印的2023-7-20,唯独A打印的是2023-7-18因为A设置了局部变量,当一个任务有局部变量又有全局变量的时候,以局部变量的值为准(就近原则)

日期


Linux中获取前一天数据的命令:date -d '1 day ago' +'%y%m%d'date1=`date -d '1 day ago' +'%y%m%d'`
Apache DolphinScheduler提供了一些时间相关的系统参数,方便定时调度使用。

系统参数


格式太固定,没法自定义


实战



v2-6457ddd23de136d4ebc84fae70b3cc5c_720w



查看B的日志:


v2-80372209e7618f520cf0b9a06ec07b0c_720w


自定义时间

在C任务中

v2-0c1e3733a0c2c79242a7c5723e8fcbbb_720w


v2-a63725ea0b0dfbb8bd1af88966040d66_720w

自定义日期格式

$[yyyyMMdd], $[HHmmss], $[yyyy-MM-dd]$[yyyyMMdd]也可以写成$[yyyy-MM-dd]$[HHmmss] 也可以添加: $[HH:mm:ss]

v2-ca32764fa50c543588f0c8441425a0f4_720w


v2-b7b5bbf23f90f261c1ce31a7d52814f0_720w


资源中心


资源中心是 DolphinScheduler 的文件管理平台,支持用户上传和管理资源文件。

  • 资源上传:用户可以将脚本、数据文件等上传到资源中心,方便在任务中引用。

  • 资源使用:在任务配置中直接引用资源中心的文件,提高资源复用性和管理效率。


资源上传



v2-6178e76638cb644254c54ac94bc4c6ce_720w

保存之后其实本质上是上传到了HDFS路径下。


v2-6f04f2a57ceebaef544cfd2e71f572b4_720w

资源使用
资源如何使用?


v2-fd0e293b010c3f08728f3671538e7002_720w


v2-ae515f582889ec2971770a92b7e435e6_720w

告警通知


告警通知是确保任务状态及时反馈给用户的重要机制。

DS是一个任务调度工具,当任务执行很慢的时候,我们需要一个告警通知,不管是成功还是失败,都需要第一时间收到通知。

  • 邮件告警:配置邮件服务器,任务执行完成后发送邮件通知,适用于任务状态报告和异常通知。

  • SMS 告警:发送短信通知,适用于紧急情况的通知,但注意可能存在功能限制或 Bug。


邮件告警


v2-016a523552e6ea8ebf4a64c94419a3b4_720w


v2-e7d2db5e78e784e9f840fc7ae369bf53_720w

在任务流运行时,指定告警者组:


v2-497c414badac59a75d4c0843fbb0bc3b_720w


v2-be6da55cbeab0fba29a187f5fa4afe29_720w

以下是 DS 1.x 版本进行邮箱告警的配置:

需要一个能够发送邮件的邮箱(这个邮箱是一个发送方,需要将信息发送给需要的人)

vi /opt/installs/dolphinscheduler/conf/alert.properties 不要修改/opt/modules下的dolphinscheduler,这个文件夹下的内容在你安装完之后的那一刻已经没有任何价值了。
修改邮箱服务器的配置:


v2-cea6b0624cac6b8a6ffae550226ef1e9_720w



v2-b38941af9382af552c642871eb5c126b_720w

修改alert.properties中的文件:# mail server configurationmail.protocol=SMTPmail.server.host=smtp.163.commail.server.port=25mail.sender=18638147931@163.commail.user=18638147931@163.commail.passwd=MAGBDQDGKEHCBVQA# TLSmail.smtp.starttls.enable=false# SSLmail.smtp.ssl.enable=falsemail.smtp.ssl.trust=smtp.exmail.qq.com
重启Alert服务:

./bin/dolphinscheduler-daemon.sh start alert-server./bin/dolphinscheduler-daemon.sh stop alert-server
验证是否可用:


v2-a5330cf78f2ea71a5c313c25e8544359_720w

记得同步一下时间。假如需要你做一个电话通知,怎么办?因为平台是默认不支持电话的。

使用第三方平台 -- 睿象云只需要获取一个睿象云的邮箱即可得到电话通知。


v2-51b23d17a1bd03c868b184ad29aa2476_720w

工作流重跑


当一个工作流特长,任务特别复杂的时候,执行到某一处失败了,下一次想从失败的地方开始运行,而不是重新开始。


v2-7cf987b5d6398227c58b06b008025a8f_720w





v2-a8ed9ae3c1459b7c26d56ff4e09f9185_720w

修改任务,将失败的地方修复一下,开始运行。


v2-00d598003a3df9f22c7931cf7c62e064_720w


v2-65f2157d042a6859126927cb8f9bee42_720w



  • 重跑:从头开始,再来一遍

  • 恢复失败:从失败的节点开始运行,直到运行结束。



v2-91b7864c717f15d1b21266870258fd00_720w




v2-9888e5999394dae55cb453955321b2b0_720w




v2-c31260ae7412b3936cf00c49563a41ae_720w

关闭 Linux 中的提醒


在 Linux 系统中,有时候需要关闭邮件提醒,可以通过以下命令实现:

cat /dev/null > /var/spool/mail/rootecho "unset MAILCHECK" >> /etc/profilesource /etc/profile

总结


Apache DolphinScheduler 提供了丰富的功能和灵活的配置选项,使其成为处理复杂工作流和数据管道的理想工具。

无论是在参数传递、资源管理,还是在告警通知和项目自动化方面,DolphinScheduler 都能提供强大的支持。通过本文的介绍,希望能帮助您更深入地理解 DolphinScheduler 的使用,以及如何在实际项目中高效地应用它。


本文由 白鲸开源科技 提供发布支持!