00:00
那我们看一下这个整个这个案例,刚才我们的项目也部署完了,部署完了之后也启动了,接下来呢,我们就第一个案例啊,比较简单,就是用屋调度一个shell脚本。啊框做过吧,哎,看OZ里边怎么做,OZ里面怎么做,首先呢,我们解压一下官方模板,因为我们的一个任务都来自于官方模板是这个。告他也是个他包吗,他VF?然后这个这样不用干到了吧,直接解压到了本地就直接这样就行了,对吧。然后多了一个一个在么斯对吧,谁了一个在么是里边。Input data就是数据吧,什么源对吧,然后我们进的呢,就是这个APS一个一个的任务,OK。还有很多啊,很多这个模板调度什么have的呀,Pick的呀,She的呀,SCO的呀等等,还有定时任务qua啊,定时任务的呀啊等等都有,好OK,那我们现在是不是调度she啊。
01:06
就看这个吧,啊,直接这样CP-R,我们把这个shell整个的目录啊给它拷贝出去,拷贝到哪呢?Model,然后这个U啊,拷贝到U的一个根目录,OK。然后我们也回到这个根。就在这了吧,放在这不好啊,我们还是同样的make DR一个。OZIE5-apps放专门专建一个这个目录,然后把那个MV。然后晒。把它整个的移动到这个估杠里边。CD的五杠S。就是任务一个地方啊,专门放一个地方,就是类似于我们写了一个job的那个目录一样,然后CD到这个项里边。消点还有一个点X这两个东西,这两个东西,因为这个里边呢,我们不涉及到去当前我们不是一个定时的吧,定时的内容是不是叫C对吧?哎,这个它不定时,就是执行一次,因为那个屋定呢,调度执行一次啊执行一次,那我们把这个东西打开看一下,这里面有什么东西,对吧。
02:21
啊,在这个Windows看要方便点。然后是。乌zz APP。然后下。交点打开,然后还有一个。王富好。那叫va pop,就是关于这个任务的一个配置文件嘛,OK,那work flow之前我们讲的是什么?整个工作流程吧,哎,工作流程OK,那我们先看这个交互,它里面定义了什么。就你。SDFS是谁吧,那我们这个地方写什么,它多管102啊,正好8020,我们用的是8020端口吧,OK,然后第二个双穿个是什么。
03:10
就是你们之前那个任务提交,提交给了一个东西叫resource manager,它其实在整个任务过程当中是不是叫叫。它的交穿法,这个地方配的,那你想想这个地方配谁。配雅安啊雅安哈多宝103,那雅安的档口号是多少?19888。是外包吧,服务单号。哎,是803803,像这种东西去哪看。因为他是默认的,我们没有改吧,像那个8088端口都是默认的嘛,我们并没有改吧,就是那个什么雅配置文件里面有啊,配置文件里面有啊,这你要注意到,对,然后呢,还有这个东西。
04:00
什么队列名称,还有什么root?对吧,来看一下,其实它这个东西。还有这个root是不是在这引用了,嗯,那你看一下这个东西叫什么。点WF就是one flow吧,哎,这个one flow.application什么点pass,就是你最后把这个东西放在哪了,放到哪了。那我们是不是上传到D,你看它那个路径拼的Dollar加上name not,然后user,然后那个地方我们应该是I硅谷啊user.name嘛,对吧,于5OK,然后还有一个什么EXAMPLE4。什么cell放在这个下面,那我们把这个改一下,我改成什么呢?我改成OOZ杠。那这个东西就可以不要了吧,或者说我把这个地方,这个就是引用啊,对吧,就是引用,或者说我这样走,把这个放在这,放在这之后呢,我在这干什么。
05:05
到,然后打括号把它。放进来是不是跟刚才我们拼的也一样啊,也就是说最终我们要把这个任务啊,这个任务两个配置文件吗?要放到这个目录下就行了,整个的拼起来的目录,因为这个地方不是指向的。你整个任务的一个目录嘛,对吧,啊就放在这个下面,正好我用这个屋对点呢,正好我们刚才也不是放在哪屋对杠杠下吧,哎,我们整个的把它上传上去就行了啊,上传到HPFS就够了,OK,那这块就是到时候我们上传的就是user的硅谷对吧。把整个的UZABS整个的哪个呀。就是把这个整个的目录上传到Uzi硅就行了嘛,对吧。那这块其实就是定义整个你要执行的工作啊,第一路径在哪吧,其他一些都是执行路径嘛,然后还有一个是你要交给谁来调度,对吧,你看他最终还是交给雅安来调度资源啊,资源调度交给雅安的吧。
06:07
啊,交给雅安来管理的,OK,那这个才是我们核心的work,相对来说来核心的。OK,他这一块呢,首先相对于每一个配置文件都有一个头文件对吧,文件,然后你看下面是什么。嗯,Start就是说它从哪个开始,它指向的是一个shall-node,那这个shall node在这是一个action节点。对吧,也就是说你这个开始整个任务的开始啊,是从当前这个什么。12个note开始了,12个note开始的,那你想想看,这个X节点一直到这结束,应该定义的是什么?关于你这个任务的所有的一个执行情况嘛,对吧?哎,所有任务的一个执行情况,那看看首先这个check它是引用的那边的这个check吧,把这个当前这个任务提交给谁去执行,对吧,提交给雅安去分配资源,然后那note相应的啊是谁好。
07:04
Promise。这个队列名称就当前任务有一个名称知道吧,这个地方呢,就是它的一个名称啊,就是队列名称嘛,在这引用的,在这引用的,然后这块配置文件完了之后,完了之后。他这个shell不是我们的shell,我们自己还要写个shell等会操作,他这个地方呢,是执行的什么。你看执行Excel它是exec执行嘛,执行一个A口,就打印一下这个东西。它是打印一下,然后我们变一下,我们变一什么呢?我们让它执行一个脚本嘛,我们这样,我们放一个什么p1.sh,或者说类似于物类点SSH放一个脚本进去,放到脚本进去呢,让我们执行自己的脚本。啊,这是一个脚本,那这一块等会我们要动,等会我们要动,OK,然后再接着往下看。这个是整个关于这个shell的一个配置吧,就是你要走哪个。是要脚本,那后面这个什么OKI呢。
08:02
执行成功,你成功之后走到哪个节点,你看他这种双引号,这种黄色的都是什么节点名称,节点名称你看它叫decision。拆奥对吧,哎,就是说如果成功了,他就校验一下什么路径,然后失败了他走这个什么。非节点,非节点直接就是Q。对吧,漂亮是这样的啊,整个的工作流是不是看起来是一个。流程图啊。对吧,你首先是这样的,哎,这个地方怎么放大。整个任务由谁哪个节点开始?那他。流程图当中,他肯定先读什么开始这种标签嘛,读完之后他知道了,哎,你要走一个action节点,那action节点里面也定义了相对于自己的什么。一个任务的一个情况啊,第一自己任务的一个情况,然后呢,关于这个任务最终执行成功还是执行失败,因为每一个shell命令都有一个返回值吧,当时你们讲那个。
09:07
整个的防卫这是不刀了,心那块的东西。操作的时候。什么叨了叨了很久远了吧,可能忘了就每一行命令它有自己的一个返回值吧,那么返回零就是成功的,返回非零也是失败的,就跟你整整个的什么GM推出一样的吧,哎,他根据这个判断,判断之后呢,他说你成功了要走哪个节点,失败了要走哪个节点,那下面就定义相应的个节点吧,啊,相应的节点那我们没有那么复杂,我们改成什么呢?成功了之后我们直接走and。走结束出去就行了,失败了我们走,失败了什么K把这个任务给干掉,走这个我们整个一个业务逻辑是这样的。然后呢,还有一个地方要动的就是它不是打印一个数据吗?我们改成执行一个。脚本,哎,执行一个脚本,那脚本也要放到我们这个里啊。
10:04
我们VI一个P,一点p.SH找一下。然后这个里面我们放什么东西呢?我们打印一个时间。打一个时间到那个p.log里边可以吧,啊打一个时间,那这块呢。我们到时候就可以看时间的一个情况了吧,看是要不然防止作弊啊是吧,打印个其他东西有可能作弊啊,打印时间没法作弊吧,OK,给他拿过来这个东西其实可以不加对吧。好。打印到这里边,也就是说我们这三个东西到时要上传上去,那既然我们用的是这个PDSH呢,那我们就要相应的配置文件做一些调整,首先是这个里边把这个PDSH在这定义一下,当然你不定义,你后面直接用PDSH也可以。就一样的吧,你你想想看,你不用刀这种方式,你后面去自己写死也可以吧,是这个意思,OK,那我们在这个交va public里边呢,加一个啊定义p.SH啊一个定义,第二我们要改的地方就是这个wlo offlo,那怎么改呢,看一下。
11:17
刚才他是。打印一下给他。Hello屋对吧,我们现在呢,要执行一个脚本,执行脚本这个标签execc还是不变啊,那执行的脚本是谁把脚本放进去。你之前是不是里面放的是艾克呀,它也是执行的命令吗?那一个文件也是执行命令嘛,OK,那把这些东西拿过来。把这两个东西替换掉。看到了这个是脚本的相应的一个你执行的一个什么脚本,然后什么参数对吧。把这个东西给他。规范一下。
12:02
那我们当前执行的是我们刚才写的那个PD对不对,刚才前面定义的吧,或者你不定义,你这直接写P点也可以,OK,然后接下来就是你这个p.S上这个文件在哪。在哪,就是说我们到时候是不是同样的跟着这个o.APP把它上传到上面,上传上面大家注意这后面啊,这个还是文件啊,这个东西是固定写法,就是说你要执行一个文件的话,必须要加一个井号。加一个Dollar,然后把这个文件再写一份,要不然他没办法执行,没办法执行好,这是里边的一个固定写法,你要执行一个文件的话,他必须这样的。啊,这里要注意的,然后是我们刚才所说的这个OK之后我们到哪啊。按钮。到end白天吧,我们就不做什么check point啊,Check outut校验一个输出了,直接到end,就是我们只看打印一下,那当前这个什么这个节点还有用吗。
13:06
我没用到吧,他整个工作流当中肯定不会走了,从开始到结束都不会有,那可以把它干掉,干掉,OK,就这些东西就够了,相对来说更简洁一点,那整个的工作流程当中呢,我们这样的开始呢,就是走这个shell note节点,那shell not呢,里面我们是不是要打印一个什么data时间到一个什么OT model p.log下,对吧?啊p.log下OK,然后呢,我们去。成功了就直接就退出了,And就退出嘛,你看他任何事情没做对吧,成功了结出了走了,然后如果失败了,他情况把一个失败的一个信息,什么信息,哎,给它打印出来,给它打印出来啊,相应的我们会看到这些错误信息,它到底是哪一块失败了啊,你要根据这个失败的一个信息啊去查看啊,调错个调错OK。那这块内容相应那个配置文件我们就搞定了,接下来是不是把这个整个的东西把它干什么。
14:03
这个地方我们要用哈哈,然后并哈多FS来唱什了,你用的是CDH版本的这个,所以说你要写全落地嘛,对吧,这个不要用哈FS。OK,然后这个地方上传的是。杠不,我们要上传是这个杠,所有的内容到。有着还在硅谷下吧,对吧下。对,然后我们到这儿来看一眼。U的艾特硅谷,然后有一个ozs shell3个文件都在这了啊,你要确保在集群上能看见,能看见。对,然后接下来就是执行任务对吧,因为你所有的准备环境都准备好了啊,执行一个任务。
15:01
执行任务,在这这上传,然后执行任务。把这个拿过来,CTRLC。被屋叫,然后发布屋Z的一个地址,杠C,杠con,然后指的是。当前。你你现在不要提交任务吗?你这个叫我点里面不是写的内弄还有job吗?提交给谁对不对,然后杠状走下。它会出来一个任务的一个ID啊,出来一个任务ID,然后这个任务有没有执行成功呢?我们在这来看。这个时候就用到这个页面了。刷新一下有个任务嘛,Active照对吧,他在执行状态是嘛。当前还是running。Active没了,然后我们看一下完成的一个叫果对吧,哎,这里边有Q了是吧,失败了,那我们看一下信息正好啊,你看一下在这他不是有三个节点start了,什么fail向漏了等等这些内容吗?你看哪个失败了,去点开哪个看一下,点开哪个看一下。
16:13
不对,然后要注意就有很多同学啊,点到这块的时候。这个又没了,就说只有上面这两个头发念。有的同学是,而且还不少,每个班都有,每个班都有,那这块还是你浏览器的一个兼容性问题。啊,你要自己去调整浏览器,调整浏览器你一定要就是成功或者失败都要讲什么,讲这个东西能看到,一定要点开看一看,要不然你失你成功了还好,对吧,你看不看都无所谓,假如说你失败了,你是不是要看错误信息啊,那这个地方没有错误信息,那就麻烦了,那就麻烦了,OK,那我们看一下。这个地方的一个错误信息是my class。退出了。103,这个任务他提交给了103吗?
17:03
哈多跑103括号808号,我们可以到这来看一下这个任务这块刚才我们屋子提交了吧。提交的一个任务。应该是有问题的,卖的屋他这个地方显示的是。小曼。他不能够执行这个shell脚本吗?然后屋Z这边是不是那个雅安这边显示的成功了,对吧,我们可以看一下它这整个的一个日志斯。应该是没有异常的,我们可以看一下它整个的一个执行命令。这个里边有它的一个。哦,PD。
18:04
这问题。Date这个不是在,哎,我写的是这个吗?S date是吗?对对的那个。或者说我们直接这样啊,我我们知道了,就是他这个路径命令的路径写错了,路径的命令写错了,那我们再调整一下,然后VI一下屋子杠底下有一个第一点对吧。啊是第一点漏,然后这个地方我们直接写一个。他不在下,他不在下,那我这样,然后重新我们要重新上传吧,把那个p.SH重新上传一下,所以说你整个的一个日志好像必须要到这个地方来看嘛,你如果说你的一个history sor没配的话,那这个就有问题了啊,你就看不到这个错了,因为他只是说了那个什么shall卖那块出错了吧,但是你不知道哪错了。
19:05
啊,不知道哪错了,OK。那这个地方重新上传一下,重新上传它应该是不会覆盖是吧,所以说我们先要把那个东西P点给删掉吧。Model c DH哈,都跑,然后是B。多吧,FS-R,然后删除的是。爱的硅谷下有一个5Z杠,下面有一个shell,然后要删的内容是第一点。走一下。好,然后我们重新上传一下OT。Model啊这块因为要写长定就比较比较麻烦哈,多宝然后B。好多FS杠。Put,我们当前目录有一个屋杠APS对吧,然后是shell底下有一个p1.log上传到哪了。
20:03
有的。他的微博五杠,然后。放到下面吧,下。然后呢,我们把我们的一个任务啊,重新启动一下。好。好,任务又提交上去了,提交上去了,同样的我们还是在这个外观页面看一下了,这个地方肯定还是这个照顾吧,因为他在。他在什么发布任务,然后去运行,发布任务去运行。刷新,等待它完成。又没了吧,然后当教导success成功了吧,这是第二个任务成功了,成功了之后呢,我们就看一下我们刚才把那个什么时间打印到哪了。OT model下对吧,CD。
21:01
Model。皮一点那呢,我没有放在这个,没有放在这个,我放在当前的目叫一个一点老来看一下。C的model,然后看了一下什么。估计杠下面有一个点。Yeah。P点它显示成功了,但是这没有这没有来来这看一下。在这不看了一下一点。在这了,那这个原因应该大家清楚,为什么在这了,就是说整个的任务调度是不是交给雅安来做的呀?那雅安是不是选一个no manager来执行这个任务啊,那在哪上面执行,它就打印在哪了,对吧?那这个东西要怎么去看呢?是不是你来来这个地方。
22:06
808端口。这是八包刷新,这是第二个任务吧,哎,点进来。点进来之后,你要看那个麦。卖好,然后点那个卖任务吧,这是卖对吧,点进来。这个地方才是实际执行这个任务的节点吧,他在103,所以说呢,最终那个p1.log在幺零三生成的。A 103上上了,但是我想用氧安调度,但是我想干什么呢?我想把这个P点方法就反应在102,那怎么办呢?把什么关了,把把弄把103104弄的麦关了,这个是可以,但是你这个。不合理吧,公司运行呢?啊,怎么说呢,没有人能想到了。
23:05
一个内幕。我在那个脚本里面写一个SS为102行不行。这无论在哪个节点执行,我都登录到102时执行那个命令不就完了吗?对吧?啊,所以说这种东西还是要想一想,你们说的指定什么东西能指定弄的,肯定指定不了啊,你怎么指定弄的的,他是交给雅安来控制的,交给resource manager上来控制的,对吧?那resource manager想在哪执行在哪执行吗?啊,所以说整个的过程呢,你要真的想做那个事情呢,你SSH,你把命令登录到102去执行,无论他将那个。延安将那个任务分配到哪个弄的,你都登录到101去执行一下了,对吧?哎,这也可以,这也可以,而且那通过第一个案例啊,我整个的演示了。它的一个由来从换方案例来的吧,它里边一个东西,然后要上传到HDFS,相应那个文件上传到HDFS啊接下来呢,我们如果说执行任务当中有错误信息的话,有错误信息的话,你切记你千万要去这个地方找啊。
24:15
所以说我一来讲课的时候,就要求大家把这个认证聚集这些东西一定要配上你,任何关于雅安内外操作,你只能在这个地方看错误信息。你看要不然你在刚才看到这个地方。这个信息你能看出来啥呀,你怎么调啊。没办法,小吧,但你只有真正的看到那个,他说那个路径不存在,说那个命令不存在,对吧?啊,你就知道咱们那个路径错了啊,咱们那个路径写错了啊,这才知道那大家在做的时候。你就不要按照我这个什么给我写了吧。你不要写这个了,你就自己写正常就行了,如果说你也想看一下错误的话,那你也写成这个,你自己设置一个错误能更好的发现吧,啊,你自己看一看,相应一个错误去找一找啊,你找一找OK。
我来说两句