00:00
来吧各位同学,那接下来咱继续拉倒,下面我们要讲的内容呢,就是这个刀跟死在这的进阶内容,这个进阶呢,其实倒也不是有多难,也不是有多难啊,就是说它比较重要啊好,那现在呢,我们逐个的来看一下,一共有这样的四个,诶内容分别是什么呢?工作流传参对不对?那完了之后呢,还有引用依赖资源,这个引用依赖资源大家应该应该能反应过来是啥吧。所谓引用依赖资源是不是就是引用我们这个任务所需的炸包,引用任务所需的脚本,是不是就这些东西啊对吧?好,继续往下走,那这还有一个啥呢?告警通知对不对?那再往下呢,还有一个什么工作流失败重考,诶这就是我们要讲的四个核心的内容,来那咱一个来先看工作流传参,好那这个工作流传参呢,其实它的作用是什么,大家应该心里很清楚,对吧,那工作流传它它有什么样的应用场景啊,就是说我们尤其是离线输仓啊,就是咱们这个数据计算任务呢,每天是不是都要执行啊,对吧,每天都要执行是这样的啊,那我每天的那个计算逻辑是不是都是类似的呀?对吧?那所以说我通常我为了重复的去利用咱们那个计算逻辑,我会怎么做呢?我会给那个计算逻辑里边啊,是脚本也好,是30课也好,我会给他嵌入一些这种日期参数,对不对,然后呢,我通过将来给他传不同的日期,是不是去计算不同天的数据啊,对吧?那所以说工作流的传参,这个还是比较常见的一个场景。
01:25
顶啊,是这样的,那所有的这种调度工具几乎都支持工作流传参啊,这一点大家要稍微注意一下啊好了,那接下来我们就来看一看在DS里边我们如何给这个工作留传参,咱们先说传参的方式,在DS当中传参的方式呢,一共有两种,一共有两种方式啊,哪两种方式呢?一种叫做局部传参,一种叫做全局参数,呃,全局传参或者叫做局部参数,或者是全局参数,好,那这个到底在哪儿传叫局部参数,在哪儿传叫全局参数呢?来,我接下来呢,给大家逐个的演示一下,咱们先来看一下局部参数,首先先来明确一下局部参数的定义,局部参数指的是什么呢?是指只针对单个任务节点有效的参数,哎,我们管它叫做局部参数,好,怎么传局部参数呢?来咱们演示一下啊,找到我们刚才的工作流定义,咱就以它为例啊,演示一下,来我先把它,我要想改,我想给他传三,我得先干啥,得先下线吧,对吧,来下线,然后呢,点击编。
02:25
级完了之后,假如说我现在想给A节点传个参,比如说我现在呢,不想让他打印AAA这个固定的内容啊,我想打印一个什么东西呢?比如说我想让他打印一个日期对不对?那这块你应该怎么处理呢?是不是为了传一个参数啊对吧?OK,那传参你脚本里边是被引用参数,脚本怎样引用参数了,来看是不是Dollar花括参数名这种方式引用啊对吧?好,那现在呢,在这儿我给他来一个Dollar花括号里边比如说传个DT,好,那完之后呢,在哪给他传这个局部参数呢?在下边这儿是不是有一个自定义参数啊对吧?在这儿传的参只会作用于当前的这个任务节点,这叫局部参数嘛,对吧?来,那这怎么传property是不是就是K呀,对吧?Y论呢,咱们写啥,比如随便来一个,先写一个固定的值,写一个2020-006杠幺四对不对,那这样一来是不是就会把这个值传到里边去啊对吧?好,那完之后我点击一下这个确认添加好了,那这个工作流咱们相当于就改完了,改完之后我点一下保存。
03:25
保存之后呢,这边点击添加好了,保存完毕之后,我们现在在干啥,是不是在上线再给它运行一下,给他测一下呀,对吧?好,那现在我们点击运行好,各位同学,那这时候里边是不是又多了一个工作流实例啊,对吧?呃,还没多呢,没做呢,等一会啊。诶,这个出来的是一个什么,是一个调度执行对吧?啊这个稍微等一会儿啊,各位同学来大家注意观察,你看我这啊,就是我刚刚咱们是不是出现了一个一一个情况,什么情况,就是我这个刚才我是不是点了这个运行对不对,这显示什么,是不是已经显示成功了,但是我这个工作流实力它出来没有。
04:01
他没出来对不对,这个是为什么呢?这个其实大家那会儿也可能会遇到类似的一个问题啊,这个是由于什么导致的呢?是由于我们集群当中的内存不足导致的,呃,集群内存不足导致的,因为证人你想一想啊,那当我们在这儿让DS帮我们去起一个新的任务的时候,去调度一个任务的时候,它会怎么着啊,是不是会在沃克节点启动一个新的进程或一个新的线程啊,对吧?那你起新的进程,新的线程是不是需要额外的资源,需要额外的内存对不对,但我如果内存不足,我这儿就可能会出现这个这个实力没出来的情况啊,这是可能是内存导致的,那这种情况咱们怎么去解决这个问题呢?呃,要么呢就是你干啥,要么就是你把这个集群的资源给它调大一点,或者说呢,你把这个DS你给它重启一下,它其实也是能出来的,比如在这儿呢,我X套free-H,我查一下我当前的内存啊,就是free-H是可以干啥,是不是可以查看我们这个集群的内存啊,对吧,我这调的其实不大,我调的是多少呢?是844对不对。
05:01
那所以说即便是这种情况下,那咱们这个内存也可能不够用,咱们看哪就行,你就看后边我们现在是不是每个G只剩下几百兆的可用内存啊,对吧?是这样的啊,所以还是内存的问题,那现在呢,我把这个内存我稍微的调大一点,呃,在这儿呢,如果你要是把这个虚拟机的内存往大里边调啊,你要往大了调,这个不关机也行啊,你要往大了调不关机也行啊,直接调就行,我们点一下这个设置,但是你要往小了调,必须得关机才能调啊来,我点一下这个102的节点,我点设置完之后,我现在呢,是多少,这个是,呃,是八个G对吧,那比如说在这呢,我直接给它调到16个G啊,直接调到16个G啊,那完了之后呢,我点击一下这个,我我64G我随便调对吧?呃,我这个直接给它调大一点,然后点击确定好,那这个没关系啊,就是你你这么开机调的话呢,它会保存当前的虚拟状态,然后调大之后再恢复,你所有的进程都不会受到影响,直接调就行,不用关机啊,导说行,那这个我给它调成16,呃,那完之后呢。
06:01
这个我也调大一点,我点一下设置,这个呢,我直接给它调成八个G啊来这个调成八啊,完之后再点击确认,这样一来一共才用32个G,对吧,咋用啊,我没别的意思啊,稍微等一会儿啊,没有没有没没没有这个意思,完了这个未响应了,呃,这内存条啊,内存条32G买了两条,呃,就一一差不多1000块钱一条吧,嗯,应该是900多,我记得当时等一会儿啊,等一会儿完了这个问响应了,这个不好整了啊,我我哎呀完了这个有有有点,呃不行不行,这个得换一下,要不然的话他那个啥完了103这个节点现在有点问题,我看104有没有问题,我要。
07:01
不换的话,他那啥他这个任务他出不来啊,这个稍微注意一下啊,来我们再看一下,这边我再看一下这个虚拟集不会真的给我整回响应了吧,啊这个Windows太狠了啊,完了他要是挂了的话,那我一会这个所有的程序进程我还得再重新启一下,主要我怕这个虚拟机他给关了啊,这个关机了,完了这这等待等待等等等半天他也起不来,那完了这个全全全挂了,那我这边赶紧给他起一下啊嗯,完了这个进程还可能会出问题,这个比较麻烦了,这个事儿啊。嗯,先调了吧,先调了吧,哎,关没关机到底我看一下我这个103,我现在连能不能连上。连不上103挂了是吧,103是诶,但是现在应该是开机状态是吗?呃,我先把104调了吧,我先把它调了啊,先设置一下,呃,这个太坑人了,来这个呢,我也调成八个G啊,然后点击确定。
08:02
这回不会再那啥了,这个比较顺利啊,就是103104给我这个103挂了一下,那103我们先看看到底能不能进去啊,我先在这儿进一下,呃,来进到爱特硅谷,我登一下0810,呃,不是0210,我这个应该是什么来着,呃,应该是六个0123456,然后呢,我登录一下啊,110是别的密码,完了不不是银行卡密码啊,这是我这个平时用的一个密码啊,呃,但是是啥我不告诉你,也为你知道也没用啊,那这儿能进来的,说我们这个服务器已经起来了是吧,那这样我看能不能连上进来啊。哎,能连上了,刚才可能是没启成功的啊,呃,应该现在连上,连上之后我再看一下这个内存的一个情况啊,我执行一个S,然后呢杠H,嗯。呃,15个G,然后八个G,八个G没问题吧啊,现在应该是正常的了啊呃,完之后看一下进程有没有受到影响,SGPS一下。
09:00
呃,Log server应该103这边是挂了一个那啥吧,挂了个worker对不对,OK啊,那这个呢,没办法,我们只能是给它单起一下了啊,我们进到OT model,进到dolphin sc,进来一个bin什么呀,Dolphin sc sh来一个start start什么来着,Worker so把那个参数应该是对吧,直接回车啊呃,然后呢,他说worker正在执行是哎,这啊,应该是103是吧?呃,来,我再把刚才那个命令呢,重新的执行一下啊来把这个给他诶拿过来,然后呢,复制一下我们进到103的OPT mole dolph schedule,然后呢,拿过来直接回车到307 PS一下worker现在是不是也已经给它起起来了,对吧?好,那现在咱们去检查一下我现在这个集群的状况啊,先看HTFS,找到data note3个节点是正常的,对吧?然后呢,我们再来看一下雅安有没有受到影响,来找到这儿,这儿是不是也是active notes1共有三个呀,对吧?三个节点都起来了,那说明我们现在其他的机群应该是没啥问题的,那我们这儿呢,再来看一下我这个,呃,监控中心。
10:00
建控新master是正常的,Worker呢,1233个是不是都正常了,现在应该是没啥问题了,恢复了已经好,那现在呢,我们再去看一下刚刚我们跑的那个任务啊来刚才我们是不是提交了一个任务,实例刚才是没出来了,对吧,大家注意观察,现在出来没有出来了对不对,那其实刚才你在点完那个就是运行的时候,虽然实例没出来,但是呢,实际上他已经把这个任务的呃,运行的一些信息给他存到哪儿去了呢?存到哪儿去了,存到关系型买色和数据库里边去了啊是这样的啊,那只要你的资源充足了之后,那我这个实力就会自动的运行起来啊是这样的,这一点大家稍微的注意一下就行了,OK啊,所以说在这儿呢,你只要把内存给够了,他这是不是就自己出来了,对吧,这是这样的啊,现在完成之后,我们现在继续下走,回到我们刚刚的这个这个这个这个学习的这个知识点上面来啊,我们这在学什么东西来着,是不是在学这个局部传参的这个这个事啊,对吧?好,我们来看一下这个参数有有没有生效,有没有生效,这个怎么去看就行。咱们看一下这个工作流的任务实例的日志,是不是就完事了,对吧?咱们找哪个任务实例,得找NOEA吧,对吧?咱们看后边走,然后你往下拉看它打印的是什么内容是202006杠幺四对吧?这个是不是没啥问题啊对吧?好,那没啥问题之后关闭就行了,也就是说局部参数咱们就生效了,好那接下来呢,我们再来测试一下下边的一个叫做全局参数的这个传参的方式,全局参数,全局参数指的又是什么呢?这个就简单了,全局参数是指什么来着?是指针对整个工作流的所有的任务节点都有效的参数,这个就简单了,来我们快速的测一下啊,那在这儿呢,我打开咱们这个呃,工作流定义,然后呢先给他下线,下线完之后呢,我们点击一下这个编辑,点完编辑之后呢,我们调整一下里边的这个参数啊,那首先这个A节点是不是已经有这个参数了,对吧?OK好,那CTRLC咱们把它取消取取消,然后呢,节点B呢,我也让他打印一个。
11:53
到B对不对,到DT对不对,但注意观察,我这给他传参了吗?没传啊,然后点T确认添加,然后再找到CC这边呢,也是直接E扣到DT,然后呢,点击确认添加,好,那接下来呢,我们继续按,到这时候我们是不是就得点击保存啊对吧?点保存点完之后大家观察在哪传全局参数。
12:10
是不是在你保存这个工作流的时候,去选去填这个全局参数啊,对吧,设置全局,然后点一下添加,那这里边呢,我们给他传参也叫DT,然后这个Y6呢,我给他来一个2020杠零六杠幺五啊完了之后呢,我点击添加。好,那点完添加之后呢,我们现在是不是这个工作流就算是保存好了呀,对吧,那这时候我们再来到工作流定义,我们在干啥呢?再上线再运行,点击运行好,那这时候工作流实力是不是又会出现一个呀,对吧?那出现之后咱们稍微的等一会儿,稍微的等一会儿啊,等它运行完。刷新哎,这个刷新好,刷新完之后我们往下走,这是不是会出现一个任务实例啊,对吧?来我们去找,那这时候咱们这三个任务实例,他们打印的日期都应该是多少呢?来咱们一个一个看啊,我们先看B。这个是多少?
13:01
0615,这个是不是全局参数生效了呀,对吧?好,那接着往下看AA答案是多少?哎,是零六杠幺四对吧?他好像跟我们传传的那个全局参数不一样吧,对不对?好看CC是多少,是不是也是零六杠幺五啊对吧?好,那为什么A节点打印的不是幺五而是幺四呢?这是为啥?诶很简单,来咱们点击下线,我们再回到这个工作流当中,我们找到A节点,因为A节点这边我是不是也给他传了一个局部的DP参数啊,对吧,局部是幺四,全局是幺五,那从这儿我们就能看出来它以谁为准呢?是不是以局部局部优先,对吧?它是有作用欲呢,对吧?在其实跟咱们那个写代码是不是一样的呀,对吧?我是不是局部参数更加优先呀,对吧?就这个意思,这个理解一下啊好了,那这个完成之后呢,我们继续往下进行传参的方式,这两种局部和全局咱们就说完了,但其实学完这个传,呃,就是这两种传单方式之后,你会发现啊,你这么传的参数,这有意义吗?这有啥意义啊,对吧,我这给你传一个固定的,这这这有用吗?没啥用对不对,好就好比我干啥呢,就好比我直接把这个拿回来,我我这儿是不是写死是一样的效果,对吧?这其实没啥用对吧?OK啊好了,弄完之后什么样的参数才是有意义的呢?
14:14
什么样参数才是有意义的,你传这种固定的值肯定是没意义的,啥意思啊,你想一想就是将来我们把这个工作流定义好了之后,对吧?那我这个工作流正常,我得怎么做,我得每天定时执行,对不对?那我期望时间的效果是什么呢?我我在这配好,然后呢,我配个定时,然后之后我就不用再管它了,对不对?是这样的啊,这是我们期望实现的效果,但是你要是传这种固定的值,你不管它行吗?不行,你14号的时候,你得把参数改成14,你到了15的时候呢,你是不是还得手动改成15 16的时候还手动改成16啊,对吧?那这个显然是没什么用的,对吧?那什么样参数有用,就是那种动态的参数是有用的,动态的参数是有用的啊,那什么叫做动态的参数呢?我们继续看我们的文档啊,咱们往下看啊,文档当中有一小节就是下边就是系统内置参数,那这这些参数呢,就是我刚刚所提到那个所谓的动态的参数,好,那这个动态参数怎么用,那我们单独的录一节来看一下啊来视频我先停一。
15:12
来各位同学,那现在呢,我们就来看一看我们这个所谓的这些有意义的动态的参数到底怎么去玩啊好,那这个动态的参数呢,我们可以分为两类,一类呢,我们称之为系统参数,还有一类呢,叫做时间自定义参数,其实这些参数都是跟时间相关的,因为我们通常给工作流传参,咱们就是传什么参。就是纯时间参数嘛,对吧?OK,所以它们都是跟时间相关的,好我们先看第一类叫做系统参数,好,那这个系统参数呢,首先我们一共有三个,分别是system BI date system biic current,这个system date time,哎,OK,那这三个参数,那它们的含义都到底是什么呢?我们主要来看一下,首先先看第一个。这个参数指的是什么呢?是定时时间,前一天那玩它的格式是什么呢?是YY YY mm DD OK,这个定时时间指的什么意思?
16:03
什么意思,很简单,是这样的啊,就是咱们正常,比如举例子,咱们这个任务我是不是正常每天跑一次啊,对吧,我是不会定时每天一次,每天一次对吧?好,那我每次去执行这个任务的时候呢,这个参数都会动态的解析为。前一天日期对不对,比如说我14号执行这个任务的时候,他会解析成13号对不对?那玩呃,这个不是前一天啊,这个是这呃这这个是前一天,这是前一天啊,这是前一天啊好,那如果是15号的时候,它会解释到哪一天呢?14号哎就是自动的解析成前一天,哎,这就是第一个动态的参数,好,那接下来看第二个动态参数,这个是啥呢?是当前的日期,那它的格式呢,是年月日,OK,好,那接着往下走,这个呢,也是当前的日期啊,只不过呢,它的时间格式是不一样的,它会有什么呢?年月日加上十分秒,哎,这就是我们所谓的这个系统的内置参数,好,那现在咱们来看一下这个效果啊,这个怎么能看出来呢?很简单,那首先我们还是找到工作流定义对吧?咱们先给它编辑一下,然后找到NOEA对吧?那这回我不再让他去打印这个Dollar dt了,对吧?我让他打一个Dollar dt1对吧?OK,那往下走,这样呢,我CTRL为CTRL为,我再打开一个Dollar d2,再打开一个Dollar dt3,对不对?然后下边咱们传三,我得传几个,我得传三个对吧?来走,然后走,那这边呢,一个叫做DT1,一个呢叫做DT2,一个呢叫做DT3,对吧,那传值算怎么传呢?
17:25
就传我们系文档当中这几个所谓的系统的内置参数,CTRLC拿过来,CTRLC拿过来,诶CTRLC拿过来,那完之后呢,我一个一个的给它复制起来啊,首先我们先把这个拿过来,Windows v咱们先拿第一个S数,这个是data time,这是当前的年月日十分秒,对吧?来咱们再拿过来,这个是什么?是当前的年月日,那这个呢,是前一天的是不是年月日啊,对吧?OK,好,那这三个参数咱们就都放在这儿了,然后有同学可能会纳闷了啊,我能不能直接把这个给它写在这儿。能不能?不行不行,他这个要求是这样的啊,不能直接把它放在这儿,你只能把这个东西当做一个动态的值,对吧,这个是不是就是相当于是动态的呀,对吧?它会自动发生变化啊好,完成之后我们点击确认添加之后呢,点击保存啊,然后点击添加,好那现在呢,我们找到工作流定义,是不是再给他上线,再给它运行,然后点击运行了,对吧?好,那现在我们等这个工作流实例执行完,咱们去看一下效果,刷新刷新。
18:21
刷新,哎,刷新好诶还没完,来刷新啊,已经完了,对吧,我们找到工作流实力找谁是不是还是找NOEA去看一下它的日志啊对吧?点点完之后咱继续往下看,各位同学注意观察一下这个位置,你看这是不是就是我们刚刚打印出来的三个日期啊,对吧,一个是前一天的年月日对吧,一个是当天的年日,一个是当前的年月日,十分秒,这个没啥问题吧,好了,那这个参数咱们就说完了,OK啊好了,各位同学,那其实到这一步呢,你会发现实际上呃,这三个参数的值呢啊,它确实是动态的,但是呢,它其实有一个地方是不太灵活的,哪儿不灵活呢?格式这个没法调格式,它只能是这种格式,对不对,你像咱们这个数当中,我们的日期格式是这种啊,并不是我们要传,我们得是年杠月杠日才行,对不对,那所以说咱要想用这几个参数,你就用不了了,它不够灵活,好那谁灵活的下边这种参数是比较灵活的下边参数呢?我们称之为什么称为时间自定义参数,对吧?这个时间自定义它自定义它体现在什么地方呢?它。
19:22
它能够自定义两种东西,哪两种东西呢?一个就是你的格式,你可以自己随便定义,还有一个呢,就是啥呢?那个时间你可以随便定义啊,它是非常的灵活的,这两个方面都很灵活,好,那这个所谓的时间自定义参数,我们到底应该如何去使用的?来咱们往下看,那首先先来看一下它基本的这个语法,那它的语法呢,跟前面不一样,前面那种是不是Dollar花括号里边加参数啊对吧?然后下面这种呢,是Dollar方括号里边加参数。啊,这样的啊,好,那完之后看一下这个参数是怎么传的啊,嗯,OK,你可以这么去传,比如说我这来一个Dollar方括号YYYYMMDD,哎,那当然了,我在这还可以怎么说呢?我还可以这么说,Dollar方括号YYY,然后杠MM-DD,那这样一来说能够看出来这个参数的类型我们是能够随便的去定,呃,参数的这个格式我们是能随便定义的,对吧?哎,是这样的吗?好,那它的时间怎么定义呢?往下看,下边呢,我给出来了这个,哎,具体的这个案例啊,来咱们看一看,我这儿其实是能够用它去获取任意的时间的,比如说举个例子,假如说我现在想获取当天日期后边N年的日期。
20:31
对不对,比如说我明年的今天的这个日期,对不对,那我怎么去获取呢。很简单,你就这么写就行了对不对,OK啊,那首先Dollar方块里边写上I ma,然后呢,YYYYMMDD,然后来一个逗号12乘N对不对,你后一年,那你这就写一,你后两年,你这就写二就行了,你想要获取这个日期是什么格式,你是不是就调整这个位置就行了,对吧?年当月当日就完事了啊,那除了能获取后N年的日期,你还能获取前N年的日期,你还能获取后N月,前N月后N周,前N周对不对,后N天,前N天,甚至是后N小时,后N分钟这样的一个时间都能够拿到,这个非常非常的方便啊,是这样的啊好的同学,那接下来咱们继续来进行,那我们现在就来分析分析,对于我们这个离线数仓对吧,你说将来我们去调那些脚本的时候,咱要给他传参,那咱们应该怎么处理呢?
21:25
怎么处理啊,就是我们之前写的那一系列的脚本,咱们来看一下啊,来找一下,就是我们这儿呢,是不是所有的脚本都在我们102这台节点加木的BI幕里边放着呀,对吧?就是我们这里边每一个这种将来需要调度的脚本,这个需不需要将来我们去进行调度啊,Ods到DM这是一个每日脚本对不对?这个要不要调度,这个要调度对吧?那这个脚本咱们在进行每日调度的时候,咱们前面说过,咱这个参数怎么传来的,对,这个所有的每日调度脚本,咱们基本上传单都是怎么传,打开都是两个参数,对吧?但是这两个参数呢,我们前面讲过,第一个参数是必传的,第二个参数呢,是可选的,对吧?为啥可选的?因为我们在脚本里边是不是维护着这样一个逻辑啊,对吧,你不传,那我就是不是自己获取前一天日期,对吧?所以实际上呢,对于咱们这个书藏里边一个脚本,对我们将来在调头的时候呢,我们可以传日期,也可以不传,对不对,不传行,那如果我现在就是要传,那你说我应该给他传一个什么样的日期。
22:23
我就是要传,我应该给他传一个动态的日期吧,对不对,你不能传一个固定的值,对吧,传动态日期,那咱们用谁。是不是应该用这个自定义日期格式的这个参数去传啊,对吧,咱们用上边这个能行吗?不行,这个格式不对,对吧,那你只能用下面这种对吧,下边这种,那你说我应该怎么写。是不是应该让它每天自动的获取前一天的日期啊,对吧,那应该用谁呀。是不是应该是前N天呀,对吧,那前一天是不是应该是Dollar方括号YYYY,然后这里面写杠MM-DD,然后后边再减一个几。一嘛,前一天就减一呗,是不是应该这么去转啊对吧?好,那所以接下来呢,咱们就来测试一下,如果要传应该怎么传啊,还是以它为例,先下线再编辑,然后呢,点击这个节点A,再给它增加一个参数CTRLC拿过来,CTRLV放在这,那在这我们来一个DT几DT4对不对?好,往下走,我们这点击添加,这呢来一个DT4对不对?好,那在这儿呢,我们给他串一个啥就行了。
23:21
Dollar方括号吧,应该是YYYY,然后杠大M大M,然后杠BD,然后后边来啥减一对不对,应该这么说吧,好,那现在我们点击确认添加,点击保存,点击添加,然后呢,这边我们再去运行一下这个工作流上线运行,运行看工作流实例,点击刷新。对吧,等一会啊好刷新刷新刷新再刷新,哎,完了完之后点击任务实例之后呢,我们找到node a节点,对吧,点开点开看一下往下走,你看是不是就拿到了当前日期的前一天的年杠月杠日的这个日期了,对吧?OK,这就是我们动态传参的一个操作,OK啊,也就是我们真正有用的参数,实际上呢,就是咱们下边这两种是不是动态的参数才有用啊对吧?OK,那还有一点要注意,就是我们自己写的这个数藏这的脚本,你可以怎么做呢?你第二个参数,你看实际情况,你可以传参也可以。
24:18
不传参,哎,这个一定要注意啊,然后大家要注意一下,什么时候是必须得去传这个参数的呢。当你需要去补数的时候,这个日期是必须得传的。哎,当你需要去做补顺的操作的时候,这个日期是必须得转的啊,是这样的啊来,为什么呢?我把视频录上,咱们一起来分析一下,来视频我先停一下啊好了个同学,那咱接下来呢,就来演示一下咱这个所谓的补顺到底应当如何进行,来各位同学啊,就是假定啊,咱现在的这个hello word假定咱现在的这个hello沃啊,他跑的就是啥呢。贾玲他跑的就是我们数仓里边的一些脚本,贾它掉的就是咱们数仓里边那些脚本啊好了,那完之后我们前面提到过,就是我们数仓里边这个脚本了,我们再去调用它的时候呢,我可以怎么做,我可以是不是不传第二参数,我也可以传第二参数,对吧?假定咱们没传,假定没传第二参数啊,没传第二参数,你说我们这个脚本啊,它只有什么时候运行才是正确的呀。
25:21
就是必须得按时执行,那这个脚本是不是才是正确的,什么叫按时执行,比如说我14号的时候就得跑14号的任务,15号的时候就得跑12 16号就得跑十号,你必须按时执行,是不是咱们才能自动的每天获取前一天的日期,这是不是才是准确的呀?对吧?但是如果说我现在要补税,什么叫补数,比如说我前边14、15、16这三天的任务我是没做的,对吧?那现在到17号了,我想把这三天的任务我再给他跑一下。大家想一想,你说十,你到到了17号的时候,你跑前面这三天的任务,你再去进行这个所谓的补数操作,它能正正确的执行吗?不能,因为你到了17号的时候,你自动获取前一天日期,你拿的是不是这三三天的数据,你拿的其实都是哪一天的,都是16号嘛,你拿的是17号的前一天嘛,对不对?那所以说你这个补税操作能正确的执行吗?你不传日期你是不能正确执行的啊,是这样的啊,那所以说你要想使用这个补税的功能,那你在调这个脚本的时候,就一定得干啥呢?一定得传那个动态的日期参数才行,也就是实际上它的这个补税的操作是依赖于谁的呀?是不是依赖于那个动态的日期参数的呀,对吧?诶是这么个逻辑,好,那咱接下来就来测一下,我们看看这个补数到底如何去玩啊,那首先在这儿呢,我创建一个新的工作流,我点击一个新的工作流啊,那在这儿呢,咱们就创建一个比较简单的节点,比如说我们就叫做test的节点,来一个TST,那这边呢,我们呃,也。
26:50
就给它随便来一个东西就行了,比如说我就来一个e equal啥呢,Dollar,然后划括号来一个啥DT没问题吧,好,那接下来呢,咱们继续往下走,那这样呢,我给他传一个参数,我叫DT,我给他传一个什么呢?就传一个咱们这种YYYY画画啊,然后再来一个YYYY,然后杠什么MM,然后杠DD,然后后边减一,这个是不是就是正常获取每天的前一天的这个日期啊,对吧?好,那这个完成之后,我点点击确认添加。
27:18
点击保存,那这样呢,我们就叫做test就完事了,然后之后我们点击添加好了,这个工作流现在是不是已经定义好了,对吧,那之后呢,我点击运行啊,点击上线。上线之后点击运行,然后呢,点击运行,大家说你说这个太子工作流,它打印出来的日期应该是哪一天的,正常情况下。应该是当前日期,前一天应该是24号的话,对吧?来咱们看一下是不是啊,找一下他,然后呢,找到这个24这个没问题吧,就是正常,就是咱是不是应该是这样的一个效果呀,对吧?好,那接下来咱继续来走,那假如说我现在呢,需要对这个test的工作流进行一个补顺的操作,对不对,那比如说我前几天的任务没成功,我想补顺,你看我这个怎么操作啊,我点击运行对不对,那完了之后上面咱们不管点哪,下面是不是有补数啊对吧?点补数,点补数咱是不是有串行,有并行啊对吧?假如我们现在就要执行一个串行的,呃,不是啊,并行啊,并行不是快一点对吧?假定咱们没有依赖关系啊,我们就来一个并行,好,并行完之后,下边是不是有一个调度的日期啊,对吧,这个日期你这要选的内容是什么呢。
28:15
你要选的就是你要补税的那几天的日期,比如说我前面的是哪天没跑成功呢,比如说是从21~23没成功,对不对,那在这呢,你就可以把这个21~23的这个日期给他选一下,怎么选呢?点21,再点一下23,好,那你这选中的就是21223这三个日期,好,那完成之后呢,我点击谁,我点击确定。点确定好,那完之后是不是就相当于已经确定了,我要补212223这三天的数据啊,对吧?好,那完成之后,你看我点击运行OK,那这时候大家想想,你说工作流实力会出现几个。三个会出现几个?三个吗?为啥?因为相当于你补数,是不是直接提交了这个太子的工作值三次啊,对吧,没问题吧,是不是应该会出现三个工作流,大家看是不是都是补数啊,对吧?好,那完之后呢,我们继续往下走,那下边我们这个工作流其实里边就一个节点,所以说任务实力是不是也应该出来三个呀,对吧?那大家想一想,这三个实例打印的日期应该是哪天呢?22页。
29:22
刚才咱们选的是什么?是212223对不对,没错吧,那你说我们打印的日期应该是哪几个,有同学说是二十二一二二对不对,为啥?因为我们那个日期里边是不是每一天的前一天对吧?但是事实真是如此呢?是不是咱们来看一下啊,咱一个一个来,首先我们先看第一个,注意观察这是哪一天,二一对不对,好,那么就看第二一个啊。这是哪一天?二二对不对,好,再往下走,这是哪一些。二三对不对,也就是说这个跟大家所想的一样吗?不一样对不对,也就是说这儿打印的日期,或者说那个动态参数解析成的日期跟哪儿是一致的呀,跟我们再去选择这个补数的时候,那咱们那个日期范围是不是一致的,我这选二一到二三,那他跑的那个日期是不是就是二一到二三,没错,他并没有在运算那个什么那个减一那个逻辑对不对,是这样的,所以在这儿呢,大家一定要注意一下,就是我们这么去写这个日期参数的时候,OK,那这个减几它只有什么时候会生效呢?
30:27
运,就是在你进行定时调度的时候,或在你运行的时候,这个碱几会生效,但是当你去做补数的时候,那这个碱几的逻辑它运行吗?就不运行了,我这选的日期范围是哪一天好,那那个日期参数就会解析成哪一天啊,是这样的啊,这儿它就不会去什么减一加一加加二加三的,就不会去做那个操作了,这1.1定要注意一下,这就是所谓的补税的操作啊,OK,好,那截止到现在什么叫做补数,大家心里应该已经很清楚了,而且这个补数其实你应该能感觉出来,他其实是不是就是得依赖于那个动态参数,你没有那个动态参数对不对,那你这个补数能做吗?
31:05
是做不了的,对吧?啊,你是依赖于这个日期参数去做这个补数的操作的啊,这个理解就行了,好同学,那截止到现在呢,我们就把这个补数的这个概念咱们讲完了,那你到现在呢,那咱们这个所谓的传参也就讲完了,来视频我停一下。呃,好了,各同学,那现在我们往下看,下边一个支点呢,叫做引用依赖资源,就是此处提到的这个依赖资源就是什么呢?依赖资源就是我们那对那个任务啊,所诶需要用到的那个炸包啊,或者是什么呃,下任务需要用到的一些其他的脚本啊等等,就是这些文件资源啊好了,那这些文件资源它都统一交给谁去管理来着,资源中心对吧?那咱现在就来熟悉一下这个所谓的资源中心到底是什么样的,来咱点一下这个资源中心,点完之后大家可以各位各位同学我们一起来看一下啊,看左边,左边呢,实际上它有两个内容,一个叫做文件管理,一个叫做udf管理啊,就是文件管理,其实很好理解,说白了就是啥呢?就是我们呃,任务所需要用到的炸包shell脚本,是不是就交给这个文件管理去管理啊,对吧,那下边它管理的是什么呢。
32:10
Udf管理的是什么?Udf大家应该知道是啥吧?User defend function对吧?是不是就是用户自定义函数啊,对吧?所以这个所谓的用户自定义函数指的就是谁的自定义函数,就是have里边的自定义函数,就是have里边自定义函数,OK,好,那完大家回忆一下have的自定义函数咱们通常需要怎么去维护来着,咱们学have的时候应该学过怎样去创建have的自定义函数吧?学学过没有,应该学过吧?首先呢,我们需要先去编写一个这个udf的一个代码对吧?写完之后呢,我们需要打包,打包之后呢,我们需要将这个包放在哪呢?对,放在立吧,或者放在HDFS的一个指令路径对吧?那之后呢,还得再执行一条create function的命令,是不是这个函数才能创建出来啊,对吧?哎,这是我们,诶,普通的这个还函数怎么去创建啊这样的啊,那如果我们有了DS之后,那我再去创建这个函数,那咱们就可以简化一点这个流程了,它在这儿呢,为我们创建函数的这个步骤呢,这个流程封装了一个这个接口是这样的啊,那在这呢,你可以直接通过。
33:14
Udf管理去创建函数,那怎么创建呢?其实很简单,首先那在这儿你点函数管理,这是不是有一个创建udf啊对吧?点点完之后呢,那你这这个类型其实只有什么的类型,只有have u df,好,那完成之后,这里边是不是你就可以输入函数名,输入你那个函数的那个全类名,对吧?输入你那个包所在的路径,注意这个包所在的路径应该在哪。是不应该在这个所谓的udf资源目录啊,对吧?Udf资源目录在哪呢?是不是在这儿资源管理这儿是不是可以创创建文件夹,然后创建这个炸包什么的呀,对吧?是这样的啊好,那完了之后你是不是直接在这儿就能把这个函数给它创建出来,是这样的啊,那你就不用再去have的命令行去什么创建这个函数了,单了也就在这儿呢,它是比较方便啊,就比较方便,但是在这儿我们用不到它啊,我们在这儿重点讲一下这个文件管理如何去使用啊,其实很简单啊,文件管理呢,其实在这儿呢,你可以看一下里边就有啥什么创建文件夹啊,创建文件或者是上传文件,是不是主要就是这样的一个操作呀,对吧?是这样的,那在这儿呢,我们通过一个小案例来学习一下这个所谓的资源中心到底如何使用啊,比如说举个例子啊,那咱现在这个资源中心当中,比如说就有一个这个文件,这个文件就是一个shell脚本,那完事之后呢,一会儿我们会定一个工作流程,我们让工作流程呢去引用这个shell脚本来我们看一会这块怎么去做啊,在这儿呢,我们通常可以怎么做,你可以上传,但是在这儿我们就不上传了,我们直接怎么做呢?
34:38
去创建也行,创建时候在这你是不是可以随便起一个这个文件的名称啊,对吧?比如在这呢,我就叫做哎,这个HELL啊hello hello.sh那这个文件类型是不是有SH,有pass,有等等的各种各样的文件类型,对吧?咱们就选下L脚本就行了,然后往下走,下面是不是就是咱们这个文件的内容啊,对吧?比如在这呢,我执行一个E扣h he没问题吧,这就是我们创建的一个脚本啊,完之后呢,我点击创建。
35:04
好了,各位同学,那你看现在咱这个路径下面是不是会多出来一个这样的哈,点SH文件啊,对吧,那我问一下大家这个文件跑哪去了,现在。其实就在HDS对不对,HDFS,它的根路径是什么来着,还记得。咱们在自己部署DS时候,是不是指定那个根路径了,对吧?应该是根目录下边的dolphin schedule了,对吧?咱们去找一下走点来吧,你看这是不就已经有这个路径了,对吧?点点进去之后呢,点I Google谷,然后点resources.holiday是不是已经跑在这来了,就是这个逻辑啊好了,那完成之后咱继续划走,就现在咱这就已经有一个文件了,我们现在要做的工作是什么呢?我们要在自己的项目里边去引用这个文件,好,那怎么引用呢?来找到工作流定义,还是以这个hello沃的为例啊,咱们先给他下线,再给它编辑,编辑完之后我们找到note a,然后往下走,诶,就是这块呢,咱们不让他再打印这些东西了,我们让他干啥呢?我想让他引用一下,我们这已有的这个哈,你看我这点这个资源,这是不是就已经出现了,对吧,那你怎么能引用它呢。
36:05
怎么引用这个脚本很简单,你是不是这样执行就行,但是he i.SH然后点啊,哎,那你是不是就能够引用下边这个文件了,对不对,就这么去引用啊,那当然如果你这引用的并不是它,而是一个炸包,对不对,比如说是一个什么加务干,这后边要跟一个炸包,那怎么办呢?一样的道理,对吧?你就把炸包是不是放到资源中心这样呢?你点上那个炸包,然后上边你直接一个加油杠,这儿指向这个炸包的名称,是不是就完事了,对不对,非常简单啊好,那现在我们就这样去引用这个S胶本,完成之后我们点击确认添加,点击保存好,那现在咱这个工作流是不是就保存下来了,那之后我们再去执行一下这个工作流啊,我们点击上线,点击运行,然后呢,点击运行。来,现在我们要做的就是等哎等一会儿,哎等它出来啊刷新,哎刷新刷新好,诶还没出来。啊,完了完了之后呢,我们去找一下那个note a节点对吧,来点点完之后往下走,你看它打印的就是啥是不是哈,对吧,也就是我们引用资源中心的内容就是这么去引用,非常非常简单,你引用炸包也是一样的,引用这个脚本也是一样的啊这个呢,咱们通过一个小例子就应该就能掌握了啊好完成之后视频我停一下。
37:15
好好了,各位同学,那咱接下来要做的工作呢,就是配置告警通知啊,配置告警通知,这个告警通知它的重要性我其实已经给大家说过了,对吧?在这儿我就不再强调了,OK,好,那下来咱们就直奔主题,我们来看一下到底如何让这个dolphinca对吧,去做这种比如说任务失败之后的告警通知怎么去做呢?那目前这个doin sc的1.3.9版本,我们用的就是这个版本,对吧?它支持的比较好的告警方式呢,主要是两种,一种是威胁这个这个这个邮件告警,还有一种呢,是企业微信告警,那当然其实这两种告警方式说实话他们都可能会出现一个问题,什么问题呢?就是这个通知信息不及时,就是接收不及时的一个问题,就啥意思呢,就是通常咱这个任务是不是都是晚上跑对吧,晚上的时候咱们是不是都在睡觉啊,对不对,那完之后你给你发个短信,给你发个邮件,能听见大概率是听不见的,对吧?啊,所以说这个可能会出现就是接收不及时的情况,那所以正常情况下,你要想让他肯定能接收,还得怎么样才行,还得是打电话才好使的。
38:16
对吧,还打电话,OK,那DS他默认支持打电话的这种告警方式吗?默认不支持,你要想让他支持呢?那我们就需要去借助一些第三方的告警平台了,那这个第三方的告警平台一会儿我可以会给大家去介绍一个的啊,那咱们现在呢,先完成一个基础的邮件通知的功能,好,那这个邮件通知咱们怎么去,怎么去做呢?来看一下文档,他说如果我们要想使用DS的邮件告警通知功能,我们需要先准备一个东西,准备什么东西,准备一个电子邮箱账号,并且启用SMTP服务。诶,这个SMTP大家之前有没有听说过呀,没听过吗?呃,因为有同学应该是接触过或者听说过的啊OK,那在这儿呢,给大家简单的解释一下这个DS使用这个邮件去进行告警的一个基本的原理啊,首先各位同学我们先来,呃呃,就是举一个生活当中的例子啊,就是大家呢,肯定都有很多的邮箱,对不对,比如说呃,有同学可能会有一个QQ邮箱啊,也可能会有一个163的邮箱,对不对,那完了之后呢,假如说我现在呢,想实现一个这样的效果,什么效果呢?我在我的手机上面啊,我只安一个邮件的客户端啊,正常你这个QQ邮箱是不是有自己的QQ邮箱客户端呀,对吧?163是不是也有自己的163那个邮箱大师的客户端啊,对吧?哎,那完之后呢,有同学可能写了,我不想去装这么多的客户端,太麻烦了,我就想诶只装一个邮件客户端,然后呢,把我这QQ邮箱,还有163的邮箱,我都在这一个邮件的客户端里边进行登录,诶但是说这个功能咱们能不能实现,比如说在这儿我只装一个QQ邮箱的客户端QQ。
39:51
我想我登录QQ邮箱肯定是没问题的,对吧,那我163邮箱能不能在这个QQ邮箱的客户端里面登录呢?能其实是可以的啊,不知道同学有没有去操作过啊,你要操的话,你会把肯定是可以的,但是呢,你这个要想登录,你不能直接登录,你不能说诶我打开QQ热线客户端,我直接就把谁呢,就把163邮箱的邮箱地址写在这儿,然后呢,把邮箱的密码写在这儿,你直接登录,你能登进去吗?你是登录进去的,那这样的啊,登录的时候他会告诉你,你需要怎么做呢。
40:20
你需要在163的邮箱的账户设置当中启用SMTP啊,是这样的啊OK,好,那完之后你启用SMTP之后,他会干什么啊,他会这样去做,它会在这儿呢?给你给你怎么样啊,给你生成一个随机的密码啊,称为什么呢?称为第三方授权码啊,是这样的啊好,那完之后呢,你这时候就可以怎么做了,就可以在QQ邮箱当中去干啥了,哎,去登录你的163邮箱了,那完之后呢,你的账户就写163邮箱的邮箱地址就行,那你的密码写什么呢?不是写那个163邮箱真正的密码,你写的应该是啥呢?是你启用SMTP服务之后获取的那个第三方授权码,所谓第三方授权码呢,就是第三方客户端的授权码啊,就这意思啊好,那完之后呢,你才能在QQ邮箱的客户端去登录163这个邮箱啊,是这样的啊OK,那那实际上咱现在这个do scan的邮箱告警功能,就好比是一个什么呢,就好比DS,它就是一个什么,就是一个。
41:21
个第三方的邮件客户端,对不对,你需要在DS当中输入你的账号,输入你的第三方授权码,那完事之后呢?诶,那DS是不是就可以登录你这个邮箱,然后用这个邮箱往外边去发送那个电子邮件了呀,对吧?是这样的一个逻辑啊,这一点大家要搞清楚好了,那接下来我们就来了,说了这半天了,那这个SMTP到底是个啥东西啊,啊,其实说实话这个你不知道是啥,也不影响我们下边的配置,但是呢,既然讲到了,我就给大家简单说一下这个SMTP啊说SMTP呢,这个你说的是一个服务,其实不太合理,SMTP其实是一个什么呢?是一个就是网络的应用层的一个协议啊,就跟谁是一样的呢?你比如说我们的HTTP对不对,那我们的FTP等等等等,这些其实都是什么,是不是都是我们这个计算机网络的这个应用层的一些协议啊,对吧?啊是这样的,那SMTP跟HTP一样,也是应用层的协议,那这个协议它的全称是什么呢?是邮,就是是什么呢?是这个简单邮件传输协议啊,叫做simple mail对吧?Transfer pro toco啊是这样的,就是简单邮件传输协议,OK,那这个简单邮件传输协议它到底是干什么用的呢?啊给大家解释一下,你要想知道这个它是干什么用的,那这时候我们就得对这个就是邮件,邮件或者是邮箱的工作原理有所了解才行。好,那咱接下来呢,就简单的扩展一下啊,我通过一个小例子给大家说一下,就是我们这个邮箱到底是如何去工作的,那首先各位同学假定我们这儿有一个这样的场景,比如说这儿有一个用户A对吧?好,那他有一个QQ邮箱,弄完之后呢。
42:56
那这儿还有一个用户B对吧?那他有一个163邮箱对不对,那正常情况下呢,在A对吧,那他这个手机上面或者电脑上面,他会装一个比如说QQ邮箱的客户端对不对?OK,那他会登录自己的QQ邮箱,这个应该没啥问题,对吧?那B这个人呢,他的手机上面可能会装一个诶163邮箱的客户端,他会登录自己的163邮箱,这个应该是没啥没啥问题,没啥悬念的,对吧?好,那完成之后我们就来走,那你想一想就是A用户的邮箱,A就是A用户啊,比如说他现在要给这个B用户发一个邮件,对不对?哎,那你有没有想过,那他的这个邮件是怎样一步一步到达B的这个手机上面的。
43:36
是直接发过去的吗,是吗?是直接发过去的吗?并不是直接发过去的啊,那他这个邮箱通常是怎么去工作的呢?那他是这样去工作的,那首先那A邮箱对吧,我现在呃就是A用户对吧?我需要在自己手机上不是编写一个邮件对吧?然后收件人我需要指定为谁,指定为163这个邮箱对不对?好那么这时候呢,A点击发送这个邮件,他去哪儿了,它其实是会被发往哪儿了呢?会被发往QQ邮箱的一个,诶邮箱服务器上面,每一家邮箱都会自己有自己的邮箱服务器,对不对?OK,那这个邮箱服务器呢,我们就称之为什么呢?SMTP服务器,我们为什么会称之它,称它为SMTP服务器呢?是因为呃,从A的这个手机上对吧,往这个SMTP服务器上边去发这个呃邮件的时候呢,它使用的协议是什么协议呢?就是这个SMTP协议,那是这样的,相当于这儿是不是SMT的一个客户端呀,对吧。
44:40
这相当是SMTP协议的一个服务器服务端啊,是这样的啊,好,那这个邮件现在其实就发往了QQ邮箱的SMTP服务器上面去了,OK啊,那最终这个邮邮件需要去哪才行,得去到这个163邮箱的这个人手机上面才行,对吧?那他怎么过去的呢?OK,好,是这样的SMTB服务器呢,他会这样去做啊。
45:01
他会根据诶这个人发过来的邮箱的那个收件人,收件人是不是应该是什么什么艾特163.com对吧,这样的,他会根据这个收件的地址,将这个信息发到哪儿去呢。发到163邮箱的这个SMTP服务器上面去啊,是发到这儿去了,OK,好,那大家想一想,我现在是不是从这个邮箱邮件这个QQ的这个SMTP务器把邮箱把邮件发到了163的这个SMTB服务器,对吧?好,那这个发送的时候其实也是需要遵循一定的这个应用层协议的,那这个协议其实也是什么协议呢?也是SMTP协议,OK,那这个时候对吧?那它是不是相当于作为这个协议的一个客户端了,对不对,那谁是服务端呢?163这边相相对于一个服务端了,对吧?那服务端客户端通常怎么去区分啊,主动的那一方我们通常称之为什么呢?客户端对吧,被动接受的那一方相当于什么呀?诶是那个服务的对吧,被动的提供服务对吧,这是服务的是这样的啊好,那现在咱继续往下进行,那现在邮件已经到哪了,已经到163自己家的这个邮箱服务器上面了,对吧?但是现在是不是还是没到这个人的手机上了,对吧?这个邮件最终是怎样到这个手机上面去的。
46:16
是怎么去的呀?是163邮箱的邮箱服务器给他发过去的吗?这回并不是,这回是怎么怎么回事呢?是B这个人的,诶邮件的客户端他怎么样呢?他主动的去自己家的这个邮箱服务器去拉取,注意这个拉取这块,这个协议就不再是SMTP协议了啊,因为SMTP协议的这个整体来说,它是一个什么类,类似一个什么样的一个协议呢?是一个推的协议,对不对,你会发现是不是都是主动的从一个地方往一个地方发呀,对吧?是这样的,OK,那这回咱们还是发吗?不是发了是拉取对吧?对,拉取这个协议就不是SMTP协议了,它是什么协议呢?哎,可能是两种协议,一个是popp协议,还有一个呢是imap协议,这些可能大家都没有听说过啊,但这块了解一下就行了,这个呢主要是用来干什么的呢?主要是用来从邮箱服务器里边去拉取邮件了,他会把邮箱服务器当边属于自己的邮件拉取到自己的邮件口呢,诶这样一来那个邮件是不是就从他的这个位置到了这个位。
47:16
质量对吧?它中间会有这样的一个过程啊,会有这样的一过程啊好,那各位同学你来想一想,也就是说我们一个邮件一个邮箱对吧,我要想往外发邮件对吧?我必须得有一个什么样的服务才行呢?必须得启用什么样的协议才行呢?得启用SMTP协议才行,对吧?啊是这样的,因为呃,前面提到过这个SMTP相当于只负责什么,是不是往外发呀,对吧,只只负责往外推,是这样的啊,这一点需要注意一下,也就是说我们一会儿要想在dophin sc当中登项登录一个邮箱对吧,你要想让DS使用这个邮箱往外去发送邮件,他是不是必须得使用SMTP协议往外发才行啊,对吧?那所以在这我们需要启用SMTP协议才行,哎,这一点要注意一下,这个咱们了解了解就行,好,那接下来呢,我就来给大家演示一下,到底如何去用这个SMTP这个协议啊好,那现在呢,呃,我比如说就用我自己的一个QQ邮箱为例,给大家演示一下啊,那首先呢,在这边呢,我打开我自己登录一个QQ,完了之后呢,我找到这个QQ邮箱打开。
48:16
哎。那打开之后呢,咱们看一看怎样去开启这个所谓的SMTP服务啊来,那现在我们找到它之后,点一下这个设置啊,设置里边有账户,账户当中你往下翻,大家注意观察,这儿是不是就有我们这个开启相关服务的这个设置啊,对吧?所有的邮箱都有,你自己找一下就行了啊好,那完之后大家来看。这实际上呢是有一对的,你看这是什么,是POP3加SMTP服务,这个呢是I mapp加SMTP服务,OK,也是你这要开的话,是不是只能是一开就开一对啊对吧?为什么是一对呢?哎,其实很简单啊,这个是干什么用的来着,是往外发邮件的对不对?那这是干什么用的,是用来收邮件对吧?其实通常情况下,你在一个邮件客户端登录这个邮箱,你不不可能说只是用他往外发邮件,你是不是也希望能够收到这个邮箱的邮件啊,对不对,那所以说通常一开的话呢,就是承头开,那我往外发是不是都是SMTP,那我收的话是不是可能用pop,也可能用s mapp啊对吧?这个三其实指的是这个协议的第三代啊,第三版啊,是这个意思,各位啊好,那所以说这俩你用谁是不都行,都可以拉取邮件嘛,对吧,所以说那要开的话,你可以开这个,也可以开这个,那其实我们现在用DS呃,登录这个邮箱,咱们将来只会用来干啥,往外发邮件对吧,只是用来发告警信息的嘛,所以正正常情况下,这俩你其实怎么办就行。
49:36
你随便开一个就行,因为他俩是不是都有SMTP啊,对吧,那在这呢,比如说我点一下这个开启,那开启的时候,他让我验证一下这个密保啊,这个我我我赶紧验证一下啊,我给你发个短信。稍微等一下啊,这个短信我已经编辑好了,直接点击发送就行了啊嗯,OK,那这个咱们等一会儿我已经发过去了,发过去之后呢,我点一下我已发送好,那现在注意观察,我是不是就已经发送完了,发送完之后你看这儿给我提供了一个什么东西,这是不是就是那个第三方客户端的授权码啊,对吧?来我这儿点一下复制,OK啊,这个其实就将来就会作为什么呢?作为我们这个邮箱的密码,就这个意思啊好,那现在我点击一下这个,呃,我得把这个保存一下,因为只要你点了确定啊,他这个授权码就不会再出现了啊,所以你给他记一下啊,点击确定,那当然你要是没记住的话呢,你得怎么做得关了再开一下是不就又有了,对吧?是这样的,这个理解一下啊,行了,那到现在为止,我这个SMTP服务就算是开启了,开启之后咱接下来是不是就可以用它在哪儿在dophin sc当中去登录这个邮箱了,对吧?好,那怎么去登录呢?很简单,说白了就是改配置文件呗,对吧,来咱们改谁。
50:38
给谁是不先改alert so的配置文件啊对不对,这个aler在哪台接点在102对吧?那我们去找到它的配置文件,应该是o mole dolph sc这L,然后进到哪是应该进到这个康目录啊对吧,L然后还得找到谁找到alert点吧,对吧?来打开,打开之后呢,我们就来看一看这里边咱们到底应该如何配啊,里边这个参数还挺多的,咱们一个来啊,首先第一个就是alert type是不就是报警的方式啊对吧?那我们就是email,然后往下走,在这儿呢,是不是有一个呃il.pro对吧,就是你发送邮件的那个协议是什么?是不是就是SMTP协议对吧?这个没啥可说的,尽量往下走,下边呢,是不是就是有一个什么mail house啊对吧?这是啥意思?这啥意思?是不是就是那个邮箱服务器的主机名啊,对吧,刚才咱们说过,就是说我用一个邮箱往外发邮件的时候,他其实会先把邮件发给谁,发给自己那个邮箱服务器,对吧?所以说他是不是得知道我那个邮箱服务器的地址才行啊,对吧?好,那咱这个邮箱服务器的地址,那就是啥呢,你看。
51:39
那你用的是什么邮箱,你用的QQ邮箱,那你就得往自己那个QQ邮箱的服务器发,对吧?你要是用的163,是不是得发到103的邮箱服务器啊,对吧?那QQ邮箱的邮箱服务器的地址是什么呢?它的主机名就是smtp.qq.com这个呢,你直接百度一下就能找着啊,就能找着啊,每个邮箱它都有自己的邮箱服务器,直接百度一下就行,好接着往下走,下边是不是这个呃,服务的一个端口号对吧?这个端口号就是多少呢?就是25,你像一些这种就是知名的协议,他们所使用的这个服务端的端口号都是什么呀?都是约定俗成的,对不对?比如说举个例子,那我HTP协议我的这个端口号默认是多少啊?
52:16
八零对不对啊,八零啊,不是8080啊,808是腾开的那个,对吧,你HTP协议的那个默认的号就是八零,就是八零,这个要注意一下啊好,那咱们这个SMTP协议,那它的这个顿号就是多少呢?那就是25,你比如说我SSH协议,那我的顿号是多少呢?就是22对不对,它都是一些约定俗成的,这个理解一下啊,所以在这儿就是25就完了,那接下来继续往下走,那下边这儿这个三我们写谁呢?三很简单,三你就写你的这个邮箱的地址就完事儿了,走对吧,你将来是不是就是要用它往外发邮件啊,对吧,这就是send发送者嘛,接来往下,下边是不是还有一个user,对吧?User难写谁呢?还写这个邮箱就行了,那接下来往下走,下边是不是还有一个password password咱们写谁就写刚刚我们获取的那个第三方的授权码就完事了,把它放在这,那之后呢,我们再往下进行,那下边呢,呃,我们还有一些参数需要去配置,下边我们要配置的参数是什么呢?是TLS或者什么SSL对吧?这是跟什么相关的来说,实际上呢。
53:16
是跟加密相关的,就是我们目前所使用的这个邮件的协议是什么?是simple mail transfer,然后pro,对吧?是简单邮件传输协议,它是不会对邮件内容进行加密的,对吧?那如果说你要考虑到安全的问题,你需要对其进行加密,那你应该怎么办呢?是不是启用下边这两种加密方式的任意一种啊,对吧?这是一种加密协议,这是另外的一种加密协议,两者只能选其一,对吧?也就是你要想加密这个射程处这个射程false,或者这个射程处这个射程false能理解吗?同学们,OK,那现在呢,我暂时就先不给它加密了,不加密两者是不是都给它设为false就完事了对吧?File,好,都设为false,那都设为false之后,我现在相当于不加笔数,是名文发送了,对吧?好,完成之后shift c day好了,那截止到现在我们这个该配的参数就算配完了,配完之后,那接下来要想让的生效得干啥来着,得重启aler s来吧,好,那现在咱们重启还记得不进到BI loof,然后呢,是不是执行这个点杠dolphin sc,然后呢,先stop。
54:16
等一下是不是alert so,对吧,先停,然后呢,再起对吧,稍微等一会。啊,有点慢啊好,那接下来呢,我们再给它提起来starart star对吧?好,那现在呢,这个alert server应该就已经,呃,这个重新起来了,GPS一下,大家看一下alert时候是不是在这了,对吧?好,已经记起来了,也就是我们目前呢,是不是DS就已经具备了发送邮件的这个能力了,对吧?好,那现在我们快速的去测试一下,这个怎么测呢?很简单,你就随便跑一个工作流,让他让他让他去发一个邮件是不是就完事了,对吧?好,那些咱们测一下啊,比如说我们就以hello word为例,我点一下这个运行,那点运行的话,那这是不是这个通知策略就得配一下了,对吧,我们得发一个什么呢?都发吧,咱们成功或失败都发,对不对啊,那现在往下走,那下边这块我们需要调整人吗?通知组对不对,通知组我现在写B类有用吗?没用,我那块那邮箱是不是瞎写的呀,对吧,那就这个发不出去啊好,那现在往下这是不是可以在这也写那个收件人啊,对吧,这边我为了方便啊,我就写我自己写我自己这边是不是立马咱们就能收到啊对吧,来我找一下我自己那个邮箱就写你的也能收到,写谁都行啊在这呢,但是大。
55:23
大家看不到啊,我写我的啊,好,那现在放在这儿,这是不是一看就是能够写多个的呀,对吧,能写多个,我这儿写一个就行,然后呢,我点击运行,那也就是说一会儿咱们这不管是成功还是失败,我这儿理论上都应该会收到一个邮件才对,对吧?来稍微等一下,这个工作人还没跑完呢,跑完之后我们应该就能收到相应的邮件了,大家观察这儿跑完了这个啊,这个当然不是收到的邮件啊,呃,这个它没提示啊,这没提示,但是你看这这是不是收到两封啊,对吧?两封完之后呢,应该有一封,就是我们刚刚那个通知的邮件,大家看这个,这是我自己发给我自己的,对吧?啊点进来,点来之后你看到的这个内容是什么啊,是不是,就是首先你跑的是谁?是hello word的这个工作流,这其实那个实例吧,应该是对吧,是那个实力的名称吧,应该是对不对,就是工作流实力,咱看一下对不对啊,那说成什么,这是刚才那个吧,什么4971对吧,应该是那个4971是吧?是那工流实例啊往下走,那这个是什么?是job的类型,这个job类型,这个所谓的start process应该指的是啥?就是启动工作流,就这个意思,其实就那种运。
56:23
行对不对,但是如果这你要是补数,要是调度它那个类型是不是就不一样了呀,对吧?哎,这个能看出来,然后状态是不是成功的状态,对吧?哎,这是成功的这个通知好了,那这个下边你愿意看就简单看一看就行,完了同学,那截止到现在这个邮件通知咱们就算是完成了,把这个其实并不复杂,对吧?啊完了之后,完成之后有一个小细节我需要给大家说一下,就是关于啥呢?就是关于刚刚我们所讲的那个加密的事儿。加密的事儿啊,OK,那这个加密的事儿谁必须得去配一下呢?我这是可以不配的,但有些同学必须得配谁呢?就是那些使用阿里云的同学,使用阿里云同学这个加密是必须得配的啊,为什么给大家简单解释一下啊,就是呃,阿里云呢,它作为一个云服务器对不对啊,OK,那它其实在这儿呢,就是考虑到一个什么问题啊,就是那种垃圾邮件服务器的一个问题啊,就是因为之前很多人,他比如说会买一个云服务器,对吧,然后在里边去部署一个这种邮件的客户端,然后呢,疯狂的往外边去发送那种垃圾邮件,对不对,OK啊好,那那这样一来是不是就是不太好啊,对吧?他为了禁止这种情况呢,他做了一个操作,什么操作呢?他将我们所有的这个服务器的这个25号端口的啊,这个就是通信的全部给封禁了啊这样的,也就是说只要我的这个呃,这个服务器上面启动了一个进程,对吧,这个进程呃,要往这个某一个服务器的25号端口发请求,它就会怎么样呢?就会。
57:48
把这个请求给它拦截下来啊,是这样的,那也就是我们现在这种邮箱服务器,它的使用的端口是不是通常都是25号啊,对吧,那完了之后呢,我比如说我在云服务器上边部署一个DS,那完了之后我要想用DS往外发邮件,是不是就会请求邮箱服务器的25号端口,对吧?那这种情这种请求你能发出去也发不出去的,也就是你这个邮件通知你是做不了的啊是这样的啊,那怎样去解决这个问题呢?两两种思路,两种思路,第一种思路呢,就是干啥,你在阿里云呃,对吧,上面去提一个工单对吧,然后呢,申请开放这个25号端口的这个请求啊OK,你申请完之后呢,它理论上就能够去发送了,但是这个申请能不能通过,这个不好说啊,啊,那这是一种方式,那还有另外一种解决问题的方案,那就是怎么办呢?你使用加密协议。
58:33
为什么使用加密协议就可以了呢?因为加密协议OK,我请求的端口号跟哎这个不加密的协议请求的端口号是不一样的啊,是这样的啊,OK,好,那我不加密,那我们这个邮箱服务器对吧?那它的这个端口号是多少呢?是25对不对?那如果说我现在呢,使用加密的协议了,OK,那你请求的这个邮箱呃,服务器的端口号呢,就不再是25号端口了,OK啊,那完之后你请求是哪个端口呢?那这个得看你用哪种加密协议,如果你使用的是种start t ls加密协议,好,那你请求的这个端口号就是多少呢?
59:08
是这个邮箱服务器的587端口啊,这样,那如果说你使用的是SSL加密这个协议呢?你请求的这个邮箱服务器端口是多少呢?通常是465端口啊这样,那这样一来是不是就能绕开那个25号端口了,对吧?所以这一点大家一定要注意,也就是说如果你要想呃使用阿里云服务器对吧?或者是现在有同学就在用阿里云服务器,那这块一定要对这个邮件进行这个加密,这里一定要注意一下啊好,那加密协议这个怎么去使用呢?配置的方式我都已经列在这儿了,如果你要想使用start t ls这个加密协议,OK,那我们就应当这么去配啊,首先这儿不用改,那这些地方是不是都不用改啊,对吧?那完之后你需要把这个端口号改成587,那完之后下边要注意一下啊,由于你是不是要启用star的TRS这种加密写一下对吧,所以说这个参数enable是不是得设为true。对吧?那下面这个呢,得设为false,因为两种加密信息是不是只能选其一啊对吧?好,接着往下走,那下面还有一个mail,呃,这个SMTP,这个点SSL trust,也就是你信任的这个,呃,主机名,那你需要将你这个邮箱服务器的主机名给它放在这个位置,这个必须得配上啊,是这样的啊好,那这个完成之后,我们就往下看看下面那个SSL这种押宾协议,这个其实比较简单,跟上边不一样的就是啥呢?是不是逗口号还有啥,还有这两三串对吧?哎,那你是不是就把它设尾处,把上面设为false就行了,对吧?那下面这个同样要改成你的邮箱服务器的主机名,OK,那这就是咱们这两种加密协议的这个配置方式,照着文档去选一个就行了,是这样的啊好了,那完之后这儿还有一个注意事项,我需要提醒一下大家,哪个注意事项的,就是说我这个加密协议啊,不是随便选的,不是随便选的,不是说这俩我选谁都可以啊,这这个你要选谁就取决于什么呢?取决于你这儿使用的这个邮箱啊,它支持哪种加密协议。
60:57
就是不是所有的邮箱我都支持这两种加密协议,有的可能支持其中一种啊,有的甚至可能两种都不支持等等等等,是这样的,那在这儿呢,你该怎么办呢?是不是根据你的邮箱所支持的协议去选择相应的加密协议啊,对吧?那到底哪个邮箱支持哪种加密协议呢?在这儿我从网上找了一个这个博客啊,咱们可以把它打开,然后呢,咱们去看一下,这个人整理的还是比较全的,咱们去看一眼啊,来给他拿过来直接回车。
61:25
好,跟同学我们一起看一下,这就是各邮箱SMTV服务器支持的协议啊,然后往下走,这边罗列的比较全,有这么多,什么gmail,这是谷歌邮箱对吧?那这是QQ邮箱,呃,这个FOX mail,这应该是那个,呃,这个呃,搜狐内邮箱是吗?OK啊,然后往下走,这是啥呢?这是什么Outlook等等等啊,就是比较多啊,比较多啊好了,完了之后呢,我们简单的看一看,就是他们所支持的协议都是什么样的,比如说QQ邮箱,它所支持的协议是比较全呀,对吧?有TR,有star ts,也有SSL,那比如说我现在用的是163邮箱,对吧?你会发现它支持star的TRS吗?它不支持,对不?它只持SSL,或者是这个TRS,它不支持star的TRS,实际样的这个一定要注意一下,所以说在这呢,你选哪种方式取决于你这个邮箱啊,这个大家可以参考一下啊,就说这么多好了,那邮箱通知这个事儿咱们就说完了啊,来完成之后视频我听一下啊。
62:18
嗯,好,同学们,那现在呢,我们再来分析一下,就是如果我要不想使用这种邮件通知,我想使用电话通知,那我应该怎么做?首先需要明确的一点是dolphin sc自己肯定是不支持电话告警的啊,那怎样才能实现这个电话告警的,那在这儿给大家推荐一个第三方的告警平台,呃,在这儿呢,我们可以百度搜索一下这个瑞向云。瑞诶这个瑞向云就是这个OK,那这个其实它是一个什么呢?是一个什么?呃,智能运维平台对吧,其实有点偏运维了啊,这个东西咱们了解了解就行啊好,那完之后我们先进到这个位置,进来之后呢,这里边儿我们可以免费试用对不对?呃,然后呢,还可以这个呃就去就是就登进去,然后呢,做一个这个测试什么都可以啊,在这儿呢,比如说我登录一下。
63:07
呃,登录完之后呢,我这就随便登一下啊,稍微等一下这个网可能有点慢啊。呃呃,有点慢,稍微有点慢啊,哎,这么慢吗?呃,行,要不咱们就暂时先不去等他了啊呃,在这我简单的给大家说,诶进来进来之后我就登一下啊,这个手机号其实不是我的手机号,这是我之前的,呃,我也不知道是谁的,应该是一个之前的一个同学的手机号啊,为啥呢?因为就是他的这个就是之前是这样的,就是他这儿是有一些,就是每个账号都有一些什么呢?就是这种免费的额度的,比如说在这儿呢,你可以打电话,可以发短信,对吧,之前这会特少,之前这短信就五条,电话就五条,我自己那个早用完了,然后就可以用了一下那个同学的当时啊,呃,完了,现在他可能升级的,现在应该是一共有100个这个免费的额度了,对吧,那这块呢,咱们简单说一下这个怎么用啊,那首先我们先来到他这个工作的界面,完了之后我们要想去用它去做这个告警通知,那咱们怎么做呢?首先你要先点一下这个,这是智能告警平台,对吧?Cloud alert你点进来,点进来之后呢,这个东西怎么去用啊,很简单,首。
64:13
首先我们需要先把这个告警平台跟我们自己的dolphin scanner做一个什么操作呢?做一个集成,先做集成,然后大家看一下我们在点完这个集成之后,这里边会是不是已经列出来了非常多的监控工具啊,对吧?比如说什么Z克斯,什么普罗米修斯,这都是传统的一些做运维的需要去做,呃,监控用到的一些工具啊,那完了之后我们继续往下看,那我们看看有没有我们这儿需要用到的这个DS呢?有吗?没有doin GA对吧?是没有的,那那怎样用它跟doin sc去做集承的,很简单,在这儿呢,我们有这种通用的集成方式,两种通用方集成方式,那分别是啥呢?首先第一个就是rice API,那第二个呢就是email集成,那简单的说一下它俩的集成的原理啊,这个rice CPI是怎么去集成的,很简单,Rest API集成,你要是想用它去集成,那首先你就点它一下就行,点完之后呢,这会它会给你展示一个什么东西啊,它会给你展示出来一个,呃,这个就是rest c BI的一个接口地址,说白了就是一个HTP协议的一个地址啊OK,那完之后你只需要按照什么呢?按照他的要求,对吧?往这里边给他发送一个相应的请求,OK,你只要把请求发过来,那完之后呢,就能够触发什么呢?就能够触发瑞向云档中的你所配置的告警逻辑,比如说把这个信息发给张三,对吧,是打电话还是发短信啊,是这样的,你就能触发这个告警逻辑了啊,是这样的啊,这是re CPI这种方式,那还有一个方式就是。
65:41
是啥呢?就是email,那email这个怎么去进行集成呢?很简单,你点一下这个email集成,它就会给你提供一个邮箱,那怎么去触发这个告警呢?很简单,你只需要往这个邮箱里边发一个邮件,那就会触发,那我们在瑞祥云里边所配置的告警逻辑,大家想想咱们现在用哪种是比较合适的呀?那肯定是邮件这种更合适的吧?好,那接下来我们看一看这个东西到底怎么去玩啊,好,那首先你需要点一下这个加号,点完加号之后呢,他就会给我们来到这样的一个界面,OK,好,那大家注意观察一下啊,在这儿你可以随便起点名字,比如说来一个什么T的测试,然后下边呢,注意观察,这其实就我们刚刚提到的,他给我们提供的邮箱,在这你可以随便写点东西,比如写一个T,写完之后呢,啥都不用写,点击保存那就完事了,点击完保存之后,各位同学注意观察,你看下边这个位置,是不是就给你生成了一个这种邮箱啊,对吧?这个邮箱怎么用?很简单,他说了,将该邮箱作为it监控系统的提醒通知邮箱即可实现告警。
66:41
上怎么将它作为这个it系统的通知邮箱,你直接把它复制过来,然后放在哪,你比如说我现在再去执行工作流,对吧,我再通知,我还通知给我自己吗?我不通知了,我给谁,我是不是就给他就行,对吧,我把它放过来,那一会儿再发邮件是不是就发到这儿了,对吧?发到这儿是不是就能触发我们在瑞象云里边所配置的这个告警的逻辑了呀,对吧,就是这么个逻辑啊OK,那这个时间元因咱们这我就不演示了啊,我给大家说一下这个怎么用就行啊好,那接下来咱继续往下走啊,那这个集成,那你填上之后就算是集成完了,那集成完之后我往里边发邮件,现在他会给我打电话发短信吗?会吗?并不会,因为我们还没有在里面去配置,那个什么呀,那个那个什么告警的逻辑对不对?好,那怎样去配置这个告警逻辑呢?这时候我们点配置,点完配置之后呢,首先我们要点的一点是什么呢?是这个分派策略,分派策略什么叫做分派策略?很简单,就是说我出了什么事我找谁对吧?出了情况A我就找张三,出了情况B我就找你四,这叫分派。
67:41
策略好,那这个分派策略怎么去添加,很简单,你这点一下新建分配好,那完之后注意观察,这是不是有一个分配条件啊,对吧?分配条件你这可以选谁,你可以比如说选T的这个应用,Test应用是不是我们刚刚集成的那个呀,对吧,你也可以选,比如说其他的应用,OK,好,那这样一来T的应用所有的问题都会分,分给谁呢?分给你下边所选的这人,比如说选给张三对不对,那OK,然后呢,这样一来的话,你相当于就有了一个什么呢?就有了一个这种所谓的分派策略,点击保存。
68:10
好,那这样一来,只要A出现问只只要咱们这个tests的应用出现问题,那是不是就会找张三呀,对吧?好,那找张三怎么找呢?我是给他打电话呀,还是发短信呀,这个咱们现在配了吗?也没有对不对?这个在哪去配呢?通知策略点这这没有通知策略点点完之后,那这样呢,我们点击新建通知,那之后呢,这里边你就可以去配置一些这个通知策略了,这个怎么去配置呢?很简单,首先告警状态,这个呢,你可以选全险发生时,认定是关闭时等等等,那这个完成之后呢,告警级别你也可以选,诶所有级别都给他,那下边是不是就有这个通知方式啊,对吧?你可以选电话、短信、邮件,微信和其他的一些应用,其他的应用都有谁呢?是不是支持这么多呀,对吧,非常的方便,你这你需要需要用到哪个,你就配哪个就完事了,好那这个完成之后呢,比如说我这选一个电话,那之后呢,我们继续往下走,那下边是就是通知的时间呀,对吧,这个呢有工作时间,非工作时间和所有时间,那我们这个通常你要配就是所有时间了啊好,那接着往下走,下边就是延迟策略,你可以立即发,也可以出问题之后等一会。
69:11
开发通常就是立刻通知人呢,那肯定就是张三了,那OK,那这样一来的话呢,那这个所谓的通知策略咱们也就配好了,那这样一来,只要那边出问题正常,他就会给咱们去打电话了,是这样的,那当然你同学可能会想,诶你打电话你手机号在哪儿了呀?哎,其实在你注册的时候,你就已经把你的手机号是不是填在这个位置了呀,对吧?啊,他就有了啊这一点咱们理解就行了,好了,那有的有可能还会说,我要想把这个信息我发给别人,那怎么办呢?对,很简单,那你点一下这儿,这儿其实有一个什么呢?有一个团队对吧?在团队当中呢,你是能够去创建用户或者是邀请用户的,你创建用户的时候,这里边是不是需要填写这个用户的各种各种各样的一些信息啊,对吧?诶是这样的,什么手机号啊,什么邮箱等等,是不是都可以填,对吧?填了之后你的通知对象就可以选这里边的用户了,是这样一个逻辑,哎,所以这个东西其实用起来也是比较简单的,但是这个东西是付费的啊,基础版,然后呢是诶这么贵,然后呢,专业版是这么贵,当然这个对于企业来说应该也不算贵,对吧?是这样的,这个理解一下就行了,好,那这就是电话告警怎么去做啊。
70:12
呃,好了同学们,那现在呢,我们看一下这个最后一个这个呃知识点叫做工作流失败重考,这个工作流失败重考在这是指的是什么意思啊,我给大家解释一下啊,就是首先那我们这个工作流是不是通常都是晚上去跑的呀,对吧?那晚上去跑的话呢,那正常情况下,我这个如果顺利的话,那没啥问题,但如果说某一个任务失败了,对吧,失败之后他会怎么样?正常失败之后,他是会给我们报警的,对吧?咱们得有人值班,那值班完之后,你收到告警信息之后呢,你得赶紧起来,是不是去修复一下这个问题,让他赶紧接着跑啊,对吧?没问题吧?那所以说这时候咱们得考虑一个问题,什么问题呢?就是当你把这个错误的原因找到了,然后呢,你已经修复了,对吧?那这个任务我让他恢复的时候,我应该怎么办?我是让他从头跑啊,还是从这个断点继续往后跑啊?
71:02
正常是不是应该从断点继续往后跑,成功的我理论上就不让他再跑了,对不对?好,那这个东西咱们怎么去操作呢?那接下来我就通过一个实际的场景给大家演示一下,就是这种失败的时候,我们到底如何去恢复这个人来,那现在呢,首先咱是不是得先模拟一个这种失败的场景嘛,对吧?好,这个失败的场景在那怎么模拟啊?我们就以这个hello word为例,现在这个hello word它执行的任务是什么?是不是A节点会去调用那个hello.shr对吧?好,那假定现在呢,我们那个hello.sh那个脚本啊,比如说我在写的时候,我写错了对不对?好,那咱们编辑一下,在这呢,他现在是不是执行了一个什么啊,E口hello样的一个语句啊,对吧?比如说在这呢,我让他执行一个这个语句叫做呃,比如说BA是掰啥呢,随便来一个aaa.SH那我现在有这个脚本吗?没有,他说张然要汇报找不到这个脚本啊,对吧?好,那现在我们点击保存行了,那保存完之后,我们现在再回到这个项目管理,找到J贸,找到hardwork这个工作流,我再让他跑它理论上应该会。
72:03
怎么样会报错的对吧?好,那现在呢,我们去嗯测一下啊,在这儿呢,我把这个通知策略设为成功失败都发送对吧,然后还是发给自己对不对,然后再点击运行,好那就是现在呢,这种情况下,如果说呃,这个工作流失败了之后,他理论上应该会给我们发这个邮件的,对吧?好,我们稍微的等一会儿。在这刷新一下。哎,现在这个错误是不是已经出现了呀,对吧?那然后咱们这个邮件有没有收到呢?也已经收到了,对吧?来看一下这个邮件信息吧,顺便来看一眼,这个应该是能看懂,这是那个工作流的实力,对不对,那现在呢,咱们这个状态是什么状态,是失败的一个状态,对不对,是这样的啊好了,那完了之后,我们收到它之后,下边也得干啥,是不是得赶紧去恢复这个工作流啊,对吧?好,问题来了,怎么恢复这个工作流?怎么回复你打开这个页面之后,你要怎么找谁?首先先说找谁。得找工作流实力吧,你得找到你失败的那个工作流实力对不对,是不是应该是什么243这个工作的实力啊对吧?好,那咱现在去找一下,能不能找到呢?是不是就是这个它对不对?好,那这儿现在的状态是不是就失败了对吧?那接下来呢,你得点进去看一看是哪个工作流失败了对吧?呃,是哪哪哪个那个节点失败了对吧?好,那现在看到是不是node a失败了,那这块咱们就得干啥呢?是不是就去找node a的任务实力啊对吧?好,找到这个任务实力是不是在这个位置对吧?你注意观察咱现在这个任务执行的进度是什么样的,B是不是成功了,A失败了C执行了吗?C还没执行对吧?OK,好,那现在你就点开这个A节点的这个日志呗,对吧,点比方说你发现这里边是不是就报错了,报的是什么错呀,是不是没有那个文件目录啊,对吧,这是不是就是咱们期望的那个效果,对吧?AA没有嘛,对吧?好,那现在我假如说我们已经快速的把这个问题定位到了,然后我们是得去解决这个问题,对吧?当然咱这解决就模拟一下就行了,咱怎么解决就行了,我把这个再给他改回来是不是就行,对吧?比如说我在这呢,我给他来一个eho he。
73:50
然后hello,对吧,然后呢,点击保存好,那现在我们是不是相当于就把这个问题已经解决了,对吧?问题解决了,现在问题来了,怎样去恢复咱们这个工作,他现在是不是已经停了呀,对吧?你得让他赶紧接着跑,怎样让他解剖,首先先说找谁,是找定义还是找实力,得找实力对不对,好找完实力之后,接下来呢,你注意观察,你看后边它有俩俩按钮,一个是重跑,一个是恢复失败,这俩有啥区别呀,很简单,重跑就是把整个工作流从头开始再跑一遍。
74:23
老师二啊,这叫重考啊,OK,那这个恢复室外呢,那就是从室外的位置开始恢复,那我们这个通常就是用谁啊,从室外的这个位置开始嘛,就是恢复之外,咱们点这个绿的就行,点点完之后呢,它这显示成功了,对吧,然后这儿状态是不是还没有变呀,对吧,怎么就变了,对刷新页面你就一直刷新,诶你看现在是不是已经变成从失败的节点开始执行啊对吧?OK,好,那完了之后注意观察,那咱这儿呢,呃,再看一下这个收到的邮件,来我们点一下它来点这个。这是什么?首先这个类型是什么?是start failure task price什么意思,是不是恢复失败的任务啊,对吧?目前的状态已经是成功了对吧?好,那现在呢,我们再回到这个工作流这个实力来看一下,来刷新,你看现在最终的状态是不是就已经成功了,它的类型是从失败节点开始执行啊好,那现在往下走,我们看一下任务实力是什么样的,这个比较关键,你重点看一下你会发现啊,实际上呢,这个是不是刚才我们这个工作流实力所对应的四个任务实力啊,对吧?其中有一个A是失败的,然后B成功了,恢复之后A是不是执行了一遍,B跑了吗?B是不是上面没有重新跑,对不对?然后呢,最终是不是C成功了呀,对吧?OK,那这就是任务流失败重号啊,其实就这么简单啊,好了各位同学,那截止到现在呢啊,这个知识点咱们也就讲完了,好完成之后视频我给他停一下啊。
我来说两句