dolphin scheduler(一)

(dolphin scheduler学习)

初识海豚调度器

海豚调度器是一个国人开发的大数据任务平台的开源应用,属于apache正在孵化的项目。满足公司内部的业务场景需求,也想拥有一套满足自己内部需要的调度应用,得借助开源的力量,在其基础上做定制化开发了(没办法能力不够,否则就团队研发一套啦,本人菜鸡一枚)。

1.海豚调度器的资料。

该调度器是一个去中性化的分布式架构,在开源的任务调度应用里很有特色。开发设计资料,架构资料,APi接口资料都可以在官网上可找。已经足够开发者能够对整个应用的项目使用,代码层级结构有清晰的认识,结合资料阅读源码还是有很大的帮助。

2.海豚调度器项目代码的模块层级

最近开始着手根据需求修改代码,怎也得先过一遍源码包对项目总体情况有一个大致的了解。先从模块层级了解:
dolphinscheduler-alert
dolphinscheduler-api
dolphinscheduler-common
dolphinscheduler-dao
dolphinscheduler-dist
dolphinscheduler-microbench
dolphinscheduler-plugin-api
dolphinscheduler-remote
dolphinscheduler-server
dolphinscheduler-service
dolphinscheduler-ui

见模块名字知其义。
为首的是高告警模块存放的是告警的业务逻辑代码,支持邮件,钉钉,企业微信发告警信息。
第二个api模块就是后端供给前端(ui模块)接口模块。
第三个模块就是common模块,放一些有可能各个模块用的到的通用类。比如下面放了构建血缘DAG的类,插件类,以及各个任务类型的参数封装类等。
第四个是dao模块,就专门用于放与数据库打交道的业务模块。

remote模模块就是通信模块,主要放的就是与通信相关的逻辑代码,DS的worker与master的任务信息交换,日志传输都是基于netty框架实现,所以学习如何使用netty也不容放过学习DS。
server模块就是整个项目的最核心模块了,worker与master的逻辑代码都在此模块下。
service模块,存放的就是定时调度类,zk的相关类,以及master发给worker时候需要借助的任务队列类。
最后面的是ui模块,放的是前端的项目代码。

3.阅读项目代码

阅读项目代码一个是需要在此项目上新添功能,另一个是通过源码定位问题,再一个就是学习大佬们的代码设计,通过阅读高质量的代码也能知道自己写的代码的不足,吸取别人的精华,后面就是可以通过源码熟练学习这个应用,知道怎么进行性能调优。
首先怎么也得样部署一下应用体验一下使用的嘛。
然后在本地开发环境搭建起来,找到入口,debug走起,类图关系画起。
下一篇写起server模块的业务逻辑分析,水平有限先到哪是哪,都是按照自己的思路捋,为啥这么写这么设计只有作者本人更清楚啦~~。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
DolphinScheduler 是一个分布式的、易扩展的、高可用的任务调度系统。以下是 DolphinScheduler 的一些常用参数: 1. 全局参数: - `dolphinscheduler.env.path`: 配置文件路径 - `dolphinscheduler.log.path`: 日志文件路径 - `dolphinscheduler.log.retention`: 日志文件保留天数 - `dolphinscheduler.task.commit.retryTimes`: 任务重试次数 - `dolphinscheduler.task.commit.interval`: 任务提交间隔时间(单位秒) - `dolphinscheduler.task.commit.retryInterval`: 任务重试间隔时间(单位秒) - `dolphinscheduler.db.check.interval`: 数据库连接检查间隔时间(单位秒) - `dolphinscheduler.db.maxWaitMillis`: 数据库连接等待超时时间(单位毫秒) 2. Master 参数: - `dolphinscheduler.master.exec.threads`: Master 执行任务的线程数 - `dolphinscheduler.master.heartbeat.interval`: Master 心跳间隔时间(单位秒) - `dolphinscheduler.master.task.commit.retryTimes`: Master 重试提交任务次数 - `dolphinscheduler.master.task.commit.interval`: Master 提交任务间隔时间(单位秒) - `dolphinscheduler.master.task.commit.retryInterval`: Master 重试提交任务间隔时间(单位秒) 3. Worker 参数: - `dolphinscheduler.worker.exec.threads`: Worker 执行任务的线程数 - `dolphinscheduler.worker.heartbeat.interval`: Worker 心跳间隔时间(单位秒) - `dolphinscheduler.worker.fetch.task.num`: Worker 一次获取任务的数量 - `dolphinscheduler.worker.max.cpuload.avg`: Worker 最大 CPU 平均负载 - `dolphinscheduler.worker.max.cpu.usage`: Worker 最大 CPU 使用率 - `dolphinscheduler.worker.max.memory.usage`: Worker 最大内存使用率 以上是一些常用的 DolphinScheduler 参数,具体使用还需根据实际情况进行配置。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值