00:00
好,接下来呢,我们写迈最后一个类,也就是转。因为map和reduce我们也起完了,那这个driver呢,就完全的是八股文。固定格式,固定的范式,那下面我们来写一下它。OK,那这个呢,就不需要继承任何内容了啊,直接写一个没方法。在这个没办法里面啊,要做很多事情啊,第一件事情。找对象。因为你这个是一个照嘛,对不对啊,你要处理拿到这个客户端内项,就类似于我们之前。呃,FS是吧,FS是我拿了一个F对象去操作这个集群的。对集群进行一个上传下来等等一系列操作。拿到这个招子下之后,第二步啊设置。
01:02
加班。准备准备。也就是说你最终这个程序啊的价包会生成价包,它存在哪里。啊,如何来找到他是。那下面是第三部。关联啊,你的麦。你刚才写了两个,一个呢是word count matter,一个是work count reducer。那么这两个类你。是不得跟这个灶产生联系啊。哎,否则的话,你放在这那程序也读不到。啊,这个肯定不行。啊,必须跟他跟那个照吧关联上。怎么设置?
02:01
迈克阶段。输出数据。黑莓类型。这个是固定的要求,要求你ma阶段的输出的类型需要去设置。接下来第五个设置。最终数据输出。的K和value。类型啊,这么两个,这个要设置啊再来。设置。程序运行的输入和输出路径。这是输入路径和输出路径。比如说你这层运行,它的输入数据在哪,最终你想把这个结果。运行完之后输出到哪。这两个是必须要有对吧。那接下来最后一个。
03:03
提交。那这是整个程序运行的一个流程啊,这么七步。七大核心的。那我们来先写一下获取招募对象。之前我们获取这个FS对象的时候,怎么获取的?点get对吧。起来看这哪。口罩呢?啊,别打书包了啊,第一个二,它下面这个带麦red的都是过时的一篇啊。我们用的都是新期天,一定要看好啊,我们。丈母娘get。盖的什么呢?获取一个实例对象,实例对象其中有一个就是需要一个配置信息。非常经典。需要什么,你就。
04:02
班长确实需要一个对象。肯定不来。是吧?只能去三里屯。三里屯。来来,好,鲁迅一条。获取这对象反数一啊,那这个呢,就是造把对象。这就拿到它。这种简单。再就说你未来要提交这个照了。啊,那这里面需要对它进行一个封装,比如说设置它相应的参数。整个这些都干这事了,最后一步。好,那第一个呢,是设置这个价的存储位置。这点。在这这里面有两个,第一个呢,叫在这后面是一个类型。其实是跟着你这个价的。如今。那另一个呢,是赛酱,叫白class。啊,两种方式。
05:01
啊,货取价的这个溶解。那第一个呢,这个是写死的。比如说你这个程序运行的时候,这个价高存在什么,你这个地方写在什么位置。产价班就真的得写在什么位置?它很显然它很不灵活是吧,很不科学,我们需要动态的去变化,那么就选择第二种,第二种什么呢?这叫by class,这个class传谁呢?传你这个主word driver。它是通过什么方式找到这个这样的存储位置呢?所以说这地方我们很显然是选。的第二个方式,所以说这地方叫S加。找到程序运行的价格的位置。拿到主类点。理解消化一下。接下来我们要设置麦和reduce的类比。就说我们要将。
06:01
把他跟这个赵产生。它怎么产生关联呢?了点。哪一个的class你要用哪一个。那很显然,我们用的是。Word框的。啊,用到我们自己写的,根据我们用户的需求去写的这个版。那将来你就是一样。这个点儿set。就是。那这个依然是word。多少?啊,这是两个类啊,要跟你这个灶产生关联。因为要不然你就白写了。OK,那下面还有设置这个阶段输出数据的KV类型。
07:01
我们看一下输出阶段,那它输出阶段的KV类型。Kiss。Test也就是一个一个的单词,那这个value呢。就是。好,那回过头来。job.set。Out后的第一个是。K class类型,那这个k class类型是。太点。单词练习。那再来点。那这个是。燕。点。这样呢,这两个就搞定了。固定写法,固定要求,必须得写。那下面还有一个是最终输出数据的类型。
08:00
啊,这地方没说是re的对吧,我说。的是最终,那这就是点set out。为什么不是reduce,后面我们会讲到。做的最终的。那这个呢,目前我们这个案例。其实就是这种。只是有一些特殊情况啊,你见我印象就行。那么这个类型是什么呢?的输出。Has单词啊,单词的次数印出来的吧。点。再来点side out不。Weather。那这个只能是。出来的宝甲。像这两个都是。属于固定的。那再往下来。
09:00
假设置输入路径和。输出攻击。那这个呢,就不用照我来治了什么。的feel。店铺的有卖的。第一个一定要选第一个啊,叫迈克长的,你像这里面还有一个叫拍动ma克red,这个呢是或。直的啊,一定要别打错了,到第一个。它相当一个他啊不要。点在。店铺的。那这里面需要一个照顾对象,那就是我们上面这个照顾对象。那后面呢,需要一个这个路径,那就给他一个路径啊。那这个路径呢,是。一个pass。就用一个pass。那这个pass里面呢,我们可以通过参数传出。
10:03
这个二。那就是第一个输入参数X0。所以说这个呢,不要选反了,你记得我们当时写这个word count的时候,就说第一个参数是in的,第二个参数是的啊。其实跟那是一样的。据说不要写反了,二零是输入路径。OK,那下面我们写一下这个输出路径。File。爱的卖。啊,依然是这个包,尤其你们刚上手的同学,这个包一定给我注意了,千万不要说了啊,每个班都要说的。立保的。第二,不的。又一个pass。80里面呢是20。也就说第二个输传输。
11:00
第一个是不是传数呢,是阴的路径。第二,产生的是out的路径。输入路径我们也有了。那下面呢,就是提交照。那这个job怎么提交呢?这个点。那么密呢?是提交的意思。啊,但是呢,我不用这个三米。什么呢?叫赵点儿。的。Application。等待提前完成。而且里面呢,有一个。那这个呢,是给他一个处的话,他提交完成之后,就会给你打印一些信息。如果你这个是放的话,他不会这个。打印信息啊,仅此而已啊,是一些打印的内容。手机。可以看一下进去看啊,进来看。比如说这个里面包含了。
12:02
同时如果它为处的话,它会打印print这个job的运行信息啊,如果为false的话,那它就。会去。所以说呢,这块呢,只是这个打印不打印控制信息的一个区别,所以说呢,这个是great communication,那个是submit,后面的话我们会带大家去看一下这里面的源码啊,整个提交的源码都给大家去看啊,比如。明天。分之一,它会返回一个。运行程序的一个结果。这个呢,X呢,它是系统的一个大。啊,系统内部出具一个打印啊。如果说这个result呢,它为true的话,系统呢,往往是认为运行成功了啊。打的是零,这呢,如果因失败呢,打一字。这个呢,你属于了解一下就行啊。啊,这个甚至说你不懂。
13:03
那前面这整个这个七步你是要清楚的。来活动一下。第一步呢,是获取招募对象。然后之后下面就是对围绕这个账对象进一步的一个封装啊。一般呢,给它剪成321。三的是这么三。三个class需要进行一个处理啊,第一个class呢,是你这个。寻找价的一个路径。路径。那这个呢,是通过这个当前这个驱动类。加点过去。那另一个呢,是我们要设置它的以及。他的reducer class。是三个plus。然后接下来呢,是二。我认为这整体是一个二。怎么一个二呢?第一个呢,是设置的输出的KV类型。
14:01
接下来第二个呢,是设置最终输出的类型。其实都是数据类型的一个设置。那接下来一的话,那就是输入输出的。输入输出的途径。然后再准确一点,就是还有个零,那零的话就是wait for competition。啊,3210比对一下啊。这是我的记忆方法啊。呃,每个人都每个人的套路啊和方法是一样啊,我这么记呢,我会容易比较记住啊,不会丢这个步骤我一查,哎,三个。不一定非常准确,但是呢,是帮助我去记忆的啊。这个呢是驱动类啊,就查了。
我来说两句