00:00
前期flow啊,那这时候咱们因为不是每日定调度啊,我们就跑一天,那咱们是不是得传flow牌meter,然后DT地推完之后得传啥,具体日期2020杠零六杠幺五,这个对不对,对吧,没错吧,那这时候咱们应该干啥?是不是正常点击CU呀,对不对?那我再问一下大家,咱们现在点击CU。啊,现在点击你说能不能成功。能不能正常运行?呃,现在给大家一个提示啊,你往哪儿去考虑,咱们这个能不能成功啊,往哪考虑,往咱们阿兹卡班的那个部署模式上去考虑。阿斯卡奔部署模式咱们有几种,两种,一种是单机的,一个一个一个web一个ex,对吧?那还有一种是多ex模式集群的啊,那是一个web serve是不是多个ex啊,那咱们现在选的是哪种方式,是集训模式,咱们是不是有三个ex对不对,你往这个方面去考虑啊,我现在点击能不能正常运行?这个任务能不能成功?能不能?
01:01
肯定哎不能说肯定吧,但是很大概率上是不是会失败的呀,为啥呀。诶对,没错,因为咱们现在呢,我们部署的是这个多EXQ模式,那多exq模式是怎么,它底层是怎么怎么执行呢?是不是web server拿到这个任务之后呢,他是不是会去从多个Q当中去挑选一个或若干个去执行你的任务啊,那我们这这个所谓的执行任务,执行的是啥任务啊,是不是就是执行咱们那个脚本对吧?那我们的脚本现在在哪。脚本是不是只在102有啊对不对?103有吗?没有,104也没有,那假如说我们的web server把任务分到了103104,那是不是找不到这个脚本,那是不是肯定执行失败呀,对不对?但是我刚才说了,我说的不是说,呃,咱们这个任务现在点击ex不是说一定会失败,应该是很大概率上会失败,对不对?假如任务都分到102上了。那是不是就能找到啊,能找到是不是就能执行,但是如果说不行,没罚到没分到102,那你就失败了啊,那所以说现在咱们这个情况就是有有有可能成,有可能失败,那肯定不允许呀,对吧,我们必须得保证他100%成功,对不对,那怎么样能保证咱们这个任务100%成功呢?咋保证啊。
02:16
大家说怎么保证啊?两种思路呗,那一种思路怎么做,把咱们这个任务所需的所有的东西分发。对不对对不对,那我所需要的任务的东西有啥呀,首先自己写的脚本肯定得用,那其次呢。脚本里边有啥内容啊,脚本是不是什么scoop,什么have s Spark是不是都得有,对不对,那所以说我们还得把啥呀,把102上面的have以及scoop,还有s Spark是不是都得分发,分配到10314,没错吧,这是一种思路啊,那还有一种思路是啥呀。还有一种思路是啥,是不是在对没错,在我们执行任务的时候,我们指定一下,指定什么,指定你这个任务都去102跑,这是不是也能解决这个问题,对不对,就是这两种思路嘛,啊就这两种思路,那大家说哪种思路更好一些呀。
03:08
哪种思路好一些呀?那肯定是下边这种好一些呀,呃,不是就是刚第一种啊,第一种好一些啊,就是把咱们的什么呀,把咱们的脚本以及我们的have scoop Spark等等,是把这些分发是好一些的呀,啊生产方式下我们应该这样去做,为什么这样测呢?如果你不这样做,你采用刚才咱们讲的第二种方案,就是指定某一个ex去执行任务,那你多还有意义吗?是不是就没有意义了呀,对吧,咱们多EXQ是不是能够实现那个什么,呃,这个负载均衡,然后呢,这个容灾的一个作用啊,对不对,结果呢,你只指定一个1Q去跑任务,那多一个Q还有什么意义呢,你还不如部署单机版呢,对不对,那所以这块呢,大家要注意啊,其实正常情况下我们采用第二种方式去做,那第二种方式呢,其实做起来很简单啊,很简单,只需要把什么呀,你就是你得考虑周全一点,你得考虑周全一点啊,只需要你把你在你这个任务啊,就是他调度那个任务所需的所有的东西都得分发,都得分发。
04:07
啊,那咱们这儿考虑周全一点,咱们这首先得有啥呀。咱们要考虑周全一点,应该有啥呀,第一个就是我们自己写的B目录下边那些脚本,这是必须的,对吧?那还有啥呀,脚本里边的内容咱们得考虑一下啊,脚本里面咱们需要用到谁scoop对不对,还得用到谁。Have,对不对,那还得用到谁呀?Spark呀,对不对,因为咱们是不是给have配的Spark引擎了啊,对不对,配SPA Spark引擎呢,我是不是得在部本地也得部署一个呀,所以说你是不是还得把Spark也分发啊,那再一个呢,我们给have配置SPA引擎,我们要求什么?是不是在这个环境当中得有一个环境变量叫做SPA home啊,对不对,是不是还得要求有它,那所以你还得把谁诶得保证每台ex上面是不是都得有SPA home这个变量啊,对不对,你得考虑周全一点。啊,得周全一点啊,这是我们,哎第二种解决方案,这个很简单,其实这个这个做法啊,这是刚才咱们讲的第一种,这很简单啊,那当然这块咱们就不再演示这个了啊,因为它很简单嘛,你只要保证你的ex上面有你所需的所有东西就行了啊嗯,这个很很好实现,那这个我就不演示了啊,那接下来我们说一下什么呀。
05:17
说一下刚才咱们大家提到的那种方式,就是指定一个ex来去跑咱们这个任务,那这个怎么指定呢?啊,咱们指定看文档,咱们来看一下8.4.3这一小节,8.4.3这一节呢,其实就已经把刚才咱们提到那个多ex模式下的这个注意事项给大家列出来了啊,就是刚才咱们那个说找不到脚本那种错误对吧?啊,那这个怎么做呀,两种方案啊。啊,第一种方案呢,就是指定特定的这个ex,这是刚才大家自己也想到了,那第二种方案呢,就是啥呀,往下翻是不是就是分发脚本以及have scoop s SPA,以及咱们那个配置文件环境变量配置文件呀,对吧?哎,这个嗯,正常做就行,那当然在这这个方案很简单,在这我们就不再不再演示了啊,我们演示什么呢?演示上面这个相对复杂一点的这个方案,咱们看这个啊。
06:06
来咱们看这个好,那这个怎么演,怎么实现呢。怎么实现呢?来看一下,我们要想指定eor,那我们就得这样做,首先我们需要在阿兹卡班的数据库当中啊找到一张表,这个表呢就是exuts这张表,这张表大家应该比较熟悉吧,我一直大家去看这张表对吧?然后呢,去看啥呀,去看,因为咱们现在要把任务是不是分到102上啊,那你得去看102上边的那个ex的ID。啊,你看的ID,那比如咱们先去看一下,我打开它来,我刷新一下,大家看这是102吧,这是它的ID吧,是四对不对,然后刚才说了这个ID是什么样的自增组件它会变对吧,你每次重启是不是这个都会变啊,那所以说你要是采用咱们这种方案的话,其实不太靠谱的,对吧,你只要你的阿兹卡班。哎,这个重启了,那你这块这个ID是不是还得变一下啊,对吧,你得记得得记得改,所以这种方案其实并不靠谱,我们自己做测试可以这么去做,自己做测试可以这么做,但是上线之后呢,那肯定得选哪种方案啊,方案二就是咱们下边那种啊,这个大家一定得记住啊,啊那现在我们演示第一种啊,好ID等于四已经拿到了,对不对,那拿到之后呢,那怎怎么去给它指令呢?
07:21
同样是通过咱们这个工作流程传参的方式去指定啊,在我们的工作流程里边传一个这样的参数教的啥,上面有就子exut,这个E是大写的啊,托福命名把这个记住好,那后边的写上你那个ID就行了,这就指定了,好那现在的我就给大家指定一下啊,那怎么指定的,具体点e flow对不对,点flow牌meter,这个DT是不是刚才已经指定了,那现在点击at row,那这里边咱们写啥应该是use。大写的E啊,Eecc e e啊没错吧,那ID是几,我的是四啊,大家得看一下自己的是多少,是不是每个人可能不一样啊,对吧,你可能你重启多次了,你已经变成789了,是不是也有可能啊啊这个记住啊,来我这个14那没问题,没有之后呢,我现在就可以点击excuse了啊,我点击执行走。
08:13
点击continue。啊,那这个时候呢,咱们这个任务就开始跑了啊,蓝色的是正在运行,然后这里边儿呢,咱们其实有一个任务呢,后续大家会发现跑的比较慢,大家说哪个比较慢啊。其实主要还是这个,诶不是这个啊,应该是这个,那是他买circle to hdfs会比较慢,为啥?因为这张表里这这个脚本里是不是会提交20个MR啊,对吧?啊,太慢了啊,40个应该是四,咱们有有导数,就是把的建索眼啊,是40个MR,所以会比较慢,因为咱们任务是串行的嘛,怎么让它快了,可以让它并行去跑,这给大家讲过了,不再多说了啊,那这个任务从头跑到尾呢?呃,以我这个电脑为例,我的电脑相对还还还行啊,还行,需要差不多15分钟到20分钟的时间。呃,这个同学电脑要是性能比较差的话呢,可能就得需要呃一个小时也是有可能的啊,嗯,之前有同学,呃,跑一个小时都没跑完啊好,那这个相当于咱们这儿就给大家说完了,等着他跑就行了啊,一会儿我们最终这个任务成功的标志应该是啥呀,全绿,然后呢,我们最终成功你得去A店去那个买SQL当是不是查一查咱们这两张表的数据啊,对吧?啊,两本数据一个是那个,呃ADS应该找哪个库啊,找那个机贸report这两个表你得看一看它有没有15号的数据,有了那就说明咱们这成功了啊OK,就说就说这么多啊,那我把这个视频先录一下。
我来说两句