![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
软件工程应用与实践
文章平均质量分 62
奋斗的仓鼠
新手村
展开
-
2021-12-27---2021SC@SDUSC---DolphinScheduler(14)
2021-12-272021SC@SDUSC—DolphinScheduler(14)1。1.Worker Server日志脱敏对日志中的密码进行脱敏。worker的日志是通过logback打印的,也就是通过配置conversionRule来实现过滤的。@Override public String convert(ILoggingEvent event) { // get original log String requestLogMsg = event原创 2021-12-29 12:51:25 · 753 阅读 · 1 评论 -
2021-12-20---2021SC@SDUSC---DolphinScheduler(13)
2021SC@SDUSCDolphinScheduler(13)2021-12-13-DolphinScheduler(13)任务日志任务日志打印在调度系统中是一个重要的功能,下面简要分析一下其打印的逻辑和前端页面查询的流程。下面是worker写入日志的流程#mermaid-svg-t8D8Qwlk2osVPpTG .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);f原创 2021-12-28 22:14:14 · 315 阅读 · 0 评论 -
2021-12-13---2021SC@SDUSC---DolphinScheduler(12)
2021-12-132021SC@SDUSC2021-12-13-DolphinScheduler(12)worker的故障转移/** * failover worker tasks * * 1. kill yarn job if there are yarn jobs in tasks. * 2. change task state from running to need failover. * 3. failover all tasks when workerHost is null原创 2021-12-27 14:19:23 · 168 阅读 · 0 评论 -
2021-12-06---2021SC@SDUSC---DolphinScheduler(11)
2021-12-062021SC@SDUSC2021-12-06-DolphinScheduler(11)1.ZKMasterClientprivate ZKMasterClient(ProcessDao processDao){ this.processDao = processDao; init();}public void init(){ // init dao this.initDao(); InterProcessMutex mutex = null; try {原创 2021-11-29 23:32:45 · 136 阅读 · 0 评论 -
2021-11-29---2021SC@SDUSC---DolphinScheduler(10)
2021-11-292021SC@SDUSC11-29-DolphinScheduler(10)WorkerServer最后我们分析WorkerServer,这是与master同级的类。与master分析思路一致,还是先来看stop方法。此处不再展示代码,只总结stop逻辑。1.调用Stopper.stop设置全局变量。停止所有线程的“死”循环2.休眠3秒3.停止worker心跳。heartbeatWorkerService.shutdownNow4.停止worker任务线程池。Threa原创 2021-11-26 16:31:16 · 884 阅读 · 1 评论 -
2021-11-22---2021SC@SDUSC---DolphinScheduler(9)
2021-11-222021SC@SDUSCDolphinScheduler(9)1. ShellTaskAbstractTask的子类现在有9个,分析ShellTask,这是一个常见的任务类型。public ShellTask(TaskProps taskProps, Logger logger) { super(taskProps, logger); this.taskDir = taskProps.getTaskDir(); this.shellC原创 2021-11-25 18:48:21 · 245 阅读 · 0 评论 -
2021-11-15---2021SC@SDUSC---DolphinScheduler(8)
2021-11-152021SC@SDUSC2021-11-15-DolphinScheduler(8)1.runrun之中大多是线程初始化、提交的逻辑。// start QuartzExecutors// what system should do if exceptiontry { ProcessScheduleJob.init(processDao); QuartzExecutors.getInstance().start();} catch (Exception e)原创 2021-11-24 21:15:52 · 553 阅读 · 0 评论 -
2021-11-8---2021SC@SDUSC---DolphinScheduler(7)
2021-11-82021SC@SDUSCDolphinScheduler(7)/** * add task to tasks queue * * @param key task queue name * @param value ${processInstancePriority}_${processInstanceId}_${taskInstancePriority}_${taskId}_host1,host2,... */@Overridepublic void a原创 2021-11-23 17:53:45 · 630 阅读 · 0 评论 -
2021-11-1---2021SC@SDUSC---DolphinScheduler(6)
2021-11-12021SC@SDUSCDolphinScheduler(6)MasterTaskExecThread根据其定义,我们知道MasterTaskExecThread继承了MasterBaseTaskExecThread,且构造函数简单的调用了父类的构造函数。public class MasterTaskExecThread extends MasterBaseTaskExecThreadMasterBaseTaskExecThread的构造函数也比较简单,给几个关键的字段赋初原创 2021-11-22 21:47:04 · 1512 阅读 · 0 评论 -
2021-10-25---2021SC@SDUSC---DolphinScheduler(5)
2021-10-252021SC@SDUSCDolphinScheduler(5)DAG类的定义DAG有三个类型参数,分别代表节点key、节点信息、边信息。下面是TaskNode的字段1TaskNodeRelation代表边的信息,字段比较少,只有startNode、endNode两个String类型的字段。这其实是DAG类的第一个类型参数,节点的key。下面是buildDagGraph的源码。public static DAG<String, TaskNode, TaskNode原创 2021-11-21 18:41:32 · 736 阅读 · 0 评论 -
2021-10-18---2021SC@SDUSC---DolphinScheduler(4)
2021-10-182021SC@SDUSC—DolphinScheduler(4)1. Stopper.isRunning()在分析run之前,首先我们先分析一下该方法的内在的逻辑/** * if the process closes, a signal is placed as true, and all threads get this flag to stop working */public class Stopper { private static volatile Ato原创 2021-11-21 18:23:24 · 365 阅读 · 0 评论 -
2021-10-11---2021SC@SDUSC---DolphinScheduler(3)
2021SC@SDUSC10-11DolphinScheduler(3)10-11—2021SC@SDUSC-----DolphinScheduler(3)-----ProcessDefinitionServiceorg.apache.dolphinscheduler.api.service.ProcessDefinitionService承担流程定义具体的CURD逻辑,调用各种mapper、dao。如下public Map<String, Object> createProc原创 2021-11-16 21:47:21 · 869 阅读 · 0 评论 -
2021-10-04-2021SC@SDUSC---DolphinScheduler(2)
2021SC@SDUSC10-04模块-dolphinschedAPI接口层,主要负责处理前端UI层的请求。该服务统一提供RESTful api向外部提供请求服务。 接口包括:工作流的创建、定义、查询、修改、发布、下线、手工启动、停止、暂停、恢复、从该节点开始执行等等。启动APIorg.apache.dolphinscheduler.api下面有两个类:ApiApplicationServer、CombinedApplicationServer。从ApiApplicationServ原创 2021-11-16 20:26:09 · 293 阅读 · 0 评论 -
2021-09-29--2021SC@SDUSC--DolphinScheduler(1)
**2021SC@SDUSC**(此为初稿,或许日后进行校验)DolphinScheduler项目综述个人分工与环境搭建日期:9-30(此为初稿,或许日后进行校验)本人目前负责dolphinscheduler-rpc 日志查看。提供日志实时查看rpc功能dolphinscheduler-dist 与编译、分发相关的模块。一.项目介绍:DolphinScheduler项目是一个分布式易扩展的可视化DAG工作流任务调度系统。致力于解决数据处理流程中错综复杂的依赖关系,使调度系统在数据处理流程原创 2021-09-30 19:10:14 · 196 阅读 · 1 评论