DolphinScheduler笔记之3:工作流的生命周期
1. 任务状态
任务调度系统里,任务状态管理对准确性和可靠性至关重要。
准确性无需多言,例如工作流实例应该在何时初始化、DAG的算子应当是 WAIT(上游算子尚未完成) 还是 RUNNING(上游全部算子完成) 状态、工作流实例是否可以更新为 SUCCESS 状态。
可靠性主要是针对各种异常状态的管理:例如任务的容错、任务的重试。
在 Apache DolphinScheduler 的具体实现里,对于任务状态有明确的枚举值,状态之间的转换遵循固定规则。代码里也有类似 Trigger/Event/Action 等的概念,因此按照状态机的模型去阅读事半功倍。
2. DolphinScheduler里的任务状态
理论上,任务的状态有提交、运行、成功、失败等。
实际状态...
DolphinScheduler笔记之2:日志
1. 日志的作用
对架构RD而言,对模块的了解不应当仅仅局限于正常流程本身,而是能够分析各种异常场景,提前添加对应的日志和Metrics等信息。例如日志的格式、位置,日志级别能否Change on-the-fly等,目的是能够通过日志分析流量、追查问题。
日志有两种:
write-ahead logging,例如leveldb笔记之2:日志
diagnostic logs,例如glog源码解析一:整体结构
这篇笔记想要谈的是第2种。
任务调度系统除了模块自身的日志,还需要打印不同任务的日志,日志互不影响。
举个例子,ds-worker 模块日志有两个appender: WORKERLOGFILE、TASKLOGFILE.
WORKERLOGFILE 负责输...
如何读史-读《史记的读法》
之前读《万历十五年》时,印象最深刻的一句话是:
“但是用视而不见的态度抹去遮盖这些事实,就是不忠实于历史;对一个英雄人物隐恶扬善,也并不是真正的推崇。”
这段话说的是戚继光,历史课本里,我们记住的是「抗倭名将」、「民族英雄」,我们需要回答的是戚继光抗倭有什么历史意义,是什么性质的战争。
然而课本里没有告诉我们的,是戚继光的晚年凄凉、英雄末路,是曾重金购买美女送给张居正、想吃煮猪头了从百里之外走马传至。
当然,这并不影响戚继光成为一个伟大的将领,反而让人觉得更加的真实,放到当时的历史环境下,这么做一点都不奇怪。这大概也是“戚继光-孤独的将领”,那一章题目的由来。
如果之前读《史记》总是读不下去,《史记的读法》这本书会非常合适,我觉得这本书像是在讲如何读史记,又像是在讲如何读历史,...
2022年个人总结
1. 工作
今年的工作内容按照上半年、下半年分成了两块内容:
上半年的主要精力还是在大数据实时计算上,对实时计算平台、底层架构、FlinkSQL都做了较大升级,整体上还算满意。美中不足的是Flink任务的资源动态扩缩容这个项目,由于精力不足没能亲力亲为,我司的导师制度出发点我非常喜欢,现在看来还是虎头蛇尾了,很多人的理解也不够。
6月份经历了一次组织的变动,当时触动还是比较大的。有那么两周我经常陷入很多问题的反思中,比如工作方法、结果导向、收益如何汇报等等,最后的结论是:坚持自我、持续学习。
下半年增加了负责任务调度系统,面临的是非常古老、重要且一直无人下定决心重构的一套系统。工作重心也从实时转到了离线这块,感觉成长还是比较大的。也促使我不断思考FlinkSQL和HiveSQL...
DolphinScheduler笔记之1:Master、Worker的线程模型
Master、Worker是DolphinScheduler最重要的两个模块,Master负责任务的调度,Worker负责任务的执行。
DolphinScheduler 官网的这张图概括了整体的流程:
注:图片基于V1.3.0,跟当前略有出入
1. 线程模型
任务提交过程中,使用到了众多线程,其中最重要的单线程、线程池,如图所示:
DolphinScheduler 的线程模型总的来说:
串联了多个生产者-消费者,队列使用内存队列
线程定义了独立的名字区分
Master-Worker 之间通过 Netty 通信
2. Master线程模型
定时调度的处理入口类是class MasterSchedulerBootstrap extends BaseDaemo...
Divide And Conquer-读《大脑减压的子弹笔记术》
最近读了基本工作效率、笔记的书,总结都有几个共同点:
1. 想清楚目标最重要
所有的行动源于目标,目标清晰了,才能快速判断行动的优先级、取舍。
如果没有想清楚目标,只是照着去罗列清单,即使都能够完成了,也不会有太多的成就感;而且注定会完不成,越积累越多。
作者举了归纳的例子,如果只是一股脑不分类的收纳到一个地方,在需要的时候还是找不到,而且很快又变乱了。
2. MECE 原则分解目标
将目标分解为需要做的的事情,创建一个系统,罗列出所有的分解项。
一旦分解完成,清空你的大脑,开始专注于具体某一个分解项。大脑之所以感觉累,是因为总在担心事情有遗漏、其他事情什么状况,反而做不好现在手头的工作。所以分解时尽可能做到 MECE,分解后集中精力进入“心流”的状态。
读这本书的时候...
心流者,事竟成-读《只管去做》
用4个番茄钟就能看完,非常推荐的一本小书。
几年前看《单核工作法》,其中的冥想、集草器的方法让我受益匪浅。最近在看《搞定》,总觉得过于理论,可操作性不强。
而《只管去做》这本书的第一章也提到了《搞定》这本书,我将这本书看做是《搞定》的实际操作版本。再加上工作方法也必须考虑本土化的问题,比如996大小周、以短视作为务实等背景,因此更推荐先按照本书实践,有些心得之后再去看理论版本。
1. 心流
聚精会神这种状态,其实在上学期间并不少见,经常两道数学题目下来,45分钟就过去了。究其原因,主要是强制的规律与清晰地目的使然:
规律:每节课固定时间,中间穿插休息;排课时,课程穿插安排,避免一直沉浸在一个学科里。
目的:考出好的成绩,每个学科想要达到多少分。
而工作后这种状态非...
学习学习的方法-读《西蒙学习法》
赫伯特·亚历山大·西蒙(Herbert Alexander Simon)是20世纪科学界的奇才,他获得过诺贝尔经济学奖,也获得过图灵奖,获得过美国心理学会终身贡献奖,还有美国政治科学学会麦迪逊奖。
从这些奖项中就可以看到西蒙学习的范围很广,这本书就是在讲西蒙的学习方法。
不过需要吐槽的是,作者更多只是借了西蒙的名字。学习方法基本都是自己的经验之谈,例子净是些国内高考美国高校录取之类的例子。。。还充斥大量图片骗页数。。。
1. 这本书的结构
西蒙学习法的 Why-What-How
学问方向很多,应该学习什么?
定好方向后,在这个方向的目标是什么?
如何学习:拆分、集中精力、掌握技巧。
2. 目标、技巧
2.1 目标
目标很重要,这个世界上的知识浩如烟海。...
207 post articles, 26 pages.