00:00
好,接下来呢,我们嗯,稍微的回顾一下这个re,然后呢,对这个案例呢,进行一个bug调试,让他看一下,你看一看这个数据到底是怎么走的。这很关键啊,一定要看好这个数据流。那首先这个呢,是一个奥德表,奥德表里面呢,有这么多数据对吧?啊,三个字段有ID有PID,有什么有数量。那产品表里面呢,有两个字段,一个就是产品ID,一个是产品的名称。那我们想要做什么呢?通过这个PID进行一个关联,哎,将PID换成P。换过来相当于是表的一个招引。最终的结果是。好,那下面呢,看一下这个具体的这个分析过程。下面是输入数据,一起输入数据,在外个阶段我们干了什么事情呢?哎,将它的PID作为P,不管你是谁,哎,作为P,剩下的所有的内容作为。
01:04
数value啊,Value同时还在里面增加了一个字段是。Flag是吧?Flag是表还是说是PD表?OK,那这里面呢,系统会默认的对它的ID进行。排序啊,默认对ID排序,那最终零一这个订单,这里面就有这么多数据。那这么多数据呢,它必然会进到一个reduce方法里面去,原因就是它的P相同啊。但是呢,它的value可不相同。而且Y6呢,是。两类的这种B项是吧啊。两种数据啊,两张表的。那不管你是哪几张表的,最终呢?哎,我先把你前面这些数据封装到一个集合里面去。那下面这个呢,PD表呢,封装到一个并对象里面去。那我循环便利这个奥表。啊,然后将里面的对象呢,P内通通的都换成对应的这个产品表里的内容。
02:03
就那么简单哈。那这是这个事儿。那下面呢,我们报一下我们写的代码啊。拦都拦不住,必须得第爸爸。看一下这个E盘。可以吧?Map里面打个点第一行。哎,打断点哈,注意哈,打断点你上来别给我上这个方法,这给我第一行给我打断点去。啊,别在这打断点啊,千万别让打断点啊,这你要让你们项目经理看到了。关键你你。活不到第二天。肯定就有卷铺盖走人了啊,一定要注意。好,那这里面呢,我再向上,哎,这这。啥的?赛大了吗?赛大吧,以前没在家看过啊看。有掉色呢,我们再打点。就这么简单,简单。来,出。开始整。见。爸爸爱走。
03:06
好,这样的数据到了哪呢?好了,走一下往下。全身。就来到了这个麦,刚才应该是走到这儿了吧。就是刚才到这儿了啊,你填出来。没关系,那往下看。往下看这个line一行,哎,就是这个,你看10001011对吧,这个数据,那这个数据它的name是什么呢。Did啊,就是这个内容啊。那下边就往重装呗,走呗,往下走。那你这一执行完之后,你会发现这个1001啊和这个幺就被封装进去了,也就是说将它的ID和amount。啊,就这么简单啊。好,那再往下走下。
04:02
这里面呢,就是这个零幺啊,零幺呢,就存在这个PID啊。向下走。出来。出来之后呢,到这儿啊,到这儿呢,之后再往出斜。下一行。下一行,你下来。那这个值呢,依然是它啊,它之后呢,再往下走。封装完毕啊。10022。好看,我把这个变量添加到这里面去,你看展示的信息就全了吧。同棒呢是不是等于二啊,Flag是不是等幺点对吧?啊,ID等于1002,然后这个PID呢就等于零二,然后P内呢是一个空,是这意思哎。在这呢啊OK。放下。继续前述运行。
05:05
还是这点这种。再来一下。收货了,手欠。来过了过了吧,啊,那再往下竖前进啊,这个是刷新。走哎,这几个方法给我记姿哈,这几个方法是你在面试的过程中。能秀的是吧?什么叫能秀啊?能让面试官知道你的存在,知道你看过元宝啊,是大海哥教过的是吧,这。证明的啊,Soft view是吧啊,这个呢,方法一定要记住,这里面做的是排序和一些啊一些啊注意啊啊。再找。一写完之后,它具体的排序的算法还记得什么吗?快牌对吧,哎,快牌啊OK。这个干掉再找。这个呢是扫啊,是不是快牌啊,啊进到快牌里了啊。
06:04
那再走,走到这这个方法也要我记住叫merge啊。在这里面实现的是。对一写的文件进行归并啊。所以说这几个方法非常重要,直接能证明你看没看元宝,你的薪资至少要涨一到2000块钱。是来的,所以说就这么几个方法就能证明这件事情啊,非常重要。OK,删掉。那这回呢,又来到了这个赛纳吧,那这个呢,我可以看了啊,应该是另一个切片了,往下走一下。你变成了。PD.d啊。啊,前身前进到这儿,到这儿之后呢,这个呢,就是这个PD这样数据。零一小米。再往下走,Start位置,那就是变成了它。那之后呢,我们可以快速的封装一下。米,小米啊小米。小米的话,你要是看不太清这个变量的值,你就艾不艾特不艾特不的话,那这里面就有了。
07:05
PD01,然后小米。这个数据呢,就是比较全的哈,啊,这里面我不关心了啊,麦阶段呢,就是将这个两张表,一个是PD表,一个是奥表。啊。第是吧,啊这个哈啊,不光是你们又写错了,也我也写错过啊,什么怎么写的呢?我之前写的是写个other好像。啊,写个other放里面了,然后感觉跟这个是一样的啊,其实呢是不一样的啊,啊你要是写上这个other就变成什么呢,输出的数据全是为空。啊,所以说小房子你不用上火啊。我在中午的时候,我也我也听错了。行,那这是这个啊,这是。往下。分完之后,同时把所有的表数据都打成标签,那就来到了这个。Reduce是不是到reduce了,哎,到reduce到reduce呢,这里面K是001啊,零一也就是PID对吧,PID是零一的数据都进来了。
08:10
那往下走吧,它其实就是一个封装的过程,好下。看看是否等于L。你看它不等于,不等于,那就相当于是这个产品对吧?啊产品,那你看一下这个。这是产品表啊啊。看你的产品表,好往下走。又来了啊,再下下。这回就变成了奥特表吧。在奥表上。啊,那往下走。添加进去。不止一个。这是几个了?哎,就两个是吧。出两个值,哎,往出写就行了,那这个地方呢,就相当于把这个table里的数据重新进行一个设置。是不是增加了一个小米啊,哎,这里增加一个小米哈,然后再来,还有一次循环,诶,再来。
09:02
就OK了啊这个。好,全程运行,我快速的把它跑完。走完之后,最终的结果就是我们看到的这种情况。也就说在它的map端啊,Map端对这两张表呢,进行拆分啊拆分拆分之后呢,最主要的是设置它的P。Key是什么?是不是这两张表中的公共字段呢?哎,关联表啊,关联的字段那它为K,那剩下的内容都为value啊,同时要加上一个flag标记为了什么?哎,在你六端时拿它去区分呢。来,那剩下的事就简单多了啊,剩下的事就在re端,通过这个标记进行反推,进行一个设置啊。主要是招引的一个过程。那么这个交易的过程大家有没有想过?他有什么不好的地方?没有什么不好的地方。
10:04
那么大部分这个代码,你就说这个招具体的招引工作是不是都在60端进行对角的一个招呢。那么在reduce端噪音想一想reduce多还是端?那肯定是卖不多是吧,那么你把所有的业务都扔到一个reduce里面去做,去做交易这种工作。那是不是性能极低呀,哎,有可能这个就导致你这个数据倾斜啊,甚至机器的一个内存不够用崩溃。那怎么办呢?其实还有很多好的方法来解决它哈。来看一下,这是上的一个缺点。在这种方式中,合并的操作在reduce阶段完成。reduce端的处理压力。特别大啊。Mab节点呢,运行这个负载呢就很低,因为它就是负责一个标记是吧,啊标记拆分就发过来了,自然利率不高啊,且在决度端极易产生数据倾斜。
11:01
说的这个数据信息,某几个reduce,这个工作量特别特别大,那这时候怎么办呢。采用脉端实现对数据的一个合并。你原来说你在reduce端这个泡水,那能不能把这个合并的过程拿到这个。你不就两张表吗?我能不能提前预缓存一张表?然后你另一张表,哎,我正常来读。这个在内存中,那能缓存到内存中的表能大吗?是不是肯定不可能大呀,哎,那就是大表和小表的时候,就可以将这张小表缓存到内存中,那什么样算小表呢?像这种产品表,它就是小表。你产品表再大能多少?这这几兆啊啊,顶多几百兆。这意思哎,他不会太大,产品能有那么多吗?那你得是什么样的这个网站呢。所以说那就可以把它缓存到内存中,然后对这个订单表进行一个招聘。
12:08
啊,接下来呢,我们嗯,稍微的回顾一下这个re造,然后呢,对这个案例呢,进行一个debug调试,让他看,让你看一看这个数据到底是怎么走的,这很关键啊,一定要看好这个数据流。那首先这个呢,是一个奥德表,奥德表里面呢,有这么多数据对吧?啊,三个字段有ID有PID,有什么有数量。那产品表里面呢,有两个字段,一个就是产品ID,一个是产品的名称。那我们想要做什么呢?通过这个PID进行一个关联,哎,将PID换成P内。换过来相当于是表的一个招引。最终的结果是。好,那下面呢,看一下这个具体的这个分析过程。下面是输入数据,一起输入数据,在外面阶段我们干了什么事情呢?哎,将它的PID作为P,不管你是谁,哎,作为P,剩下的所有的内容作为。
13:12
数value啊,Value同时还在里面增加了一个字段是。Flag是吧?Flag是表还是说是PD表?OK。那这里面呢,系统会默认的对他的ID进行排序啊,默认对ID排序,那最终零一这个订单,这里面就有这么多数据。数据,那这么多数据呢,它必然会进到一个方法里面去,原因就是它的K相同啊。但是呢,它的Y可不相同。而且Y6呢,是。两类的这种对象是吧啊。两种数据啊,两张表的。那不管你是哪几张表的,最终呢?哎,我先把你前边这些数据封装到一个集合里面去。那下面这个呢,PD表呢,封装到一个并对象里面去。那我循环遍历这个auto表。
14:02
啊,然后将里面的对象呢,P内通通的都换成对应的这个产品表里的内容。就那么简单啊。那这是这个事儿。那下面呢,我们报一下我们写的代码啊。拦都拦不住啊。可以吧?Wipe里面打个点第一行。哎,打断点哈,注意哈,打断点你上来别给我上,这个方法是我第一行给我打断点去。啊,别来这打断点啊,千万别打断点,这你要让你们项目经理看到了。关键你你。活不到第二天。肯定就卷铺盖走人了啊,一定要注意。好,那这里面呢,我再向上,哎,这。赛大的吗?赛大吧,以前没大家看完啊看。Reduce呢?我们在哪个观点?就这么简单,简单。
15:01
开始整。爸爸爱。好,这样的数据到了哪了?好了,走一下。一样。就来到了这个麦,刚才应该是走到这了吧。就是刚才走到这儿了啊,你想出来。没关系,再往下看。往下看这个line一行,哎,就是这个,你看10001011对吧,这个数据,那这些数据它的name是什么呢。点啊,就是这个内容啊。那下边就往上装呗,走呗,往下走。那你这一执行完之后,你会发现这个1001啊和这个幺就被封装进去了,也就是说将它的ID和amount。
16:04
啊,就这么简单啊。那再往下走下。这里面呢,就是这个零幺啊,零幺呢,就存在这个PID啊。往下走。出来。出来之后呢,到这儿啊,到这儿呢,之后再往出斜。下一行。下一行,你下来。那这个值呢,依然是它啊,它之后呢,再往下走。封装完毕啊。10022。好看,我把这个变量添加到这里面去,你看展示的信息就全了吧。同棒呢是不是等于二啊,Flag是不是等于幺对吧?啊,ID等于1002,然后这个PID呢就等于零二,然后P内呢是一个空,是这意思哎。
17:03
在这呢啊OK。放下。继续结束疫情。还是这再者。还没到呢啊,再来一下。收货了,手欠。来过了过了吧,啊,那再往下准竖前进啊,这个是刷新。走哎,这几个方法给我记姿哈,这几个方法是你在面试的过程中。能秀的是吧?什么叫能秀啊?能让面试官知道你的存在,知道你看过元宝啊,是大海哥教过的是吧?是能证明的soft and view是吧?啊,这个呢,方法一定要记住,这里面做的是排序和一些啊一些啊,注意啊啊。再者。一写完之后,它具体的排序的算法还记得什么吗?
18:01
快牌对吧,哎,快牌啊OK。这个干掉再走。这个呢,是啊,是不是快牌啊啊,进到快牌里了啊。那再整得到这这个方法也,我记住叫merge啊,在这里面实现的是。对一写的文件进行规避啊。所以说这几个方法非常重要,直接能证明你看美看维码,你的薪资至少要涨一到2000块钱。是来的,所以说就这么几个方法就能证明这件事情啊,非常重要。OK,删掉。那这回呢,又来到了这个赛大,那这个呢,我可以看了啊,应该是另一个切片了,往来走一下。就变成了。PD.d啊。啊,前身前进到这儿,到这儿之后呢,这个呢,就是这个PD这样数据。零一小米。那往下走start位置那就是变成了它。那之后呢,我们可以快速的封装一下。
19:02
米,小米啊小米。小米的话,你要是看不太清这个变量的值,你就艾不艾特不艾特不的话,那这里面就有了。PD01,然后小米。这个数据呢,就是比较全的哈,啊,这里面我不关心了,Map阶段呢,就是将这个两张表,一个是PD表,一个是奥表。Or是吧,啊这个哈啊,不光是你们又写错了,诶我也写错过啊,什么怎么写的呢?我之前写的是写个other好像。啊,写个other放里面了,然后感觉跟这个是一样的啊,其实呢是不一样的啊,啊你要是写上这个other就变成什么呢,输出的数据全是为空。啊,所以说小凡子你不用上火啊,我在中午的时候,我也我也听错了。行,那这是这个啊,这是奥。往下。分完之后,同时把所有的表数据都打成标签,那就来到了这个。
20:06
Reduce是不是到reduce了,哎,到reduce到reduce呢,这里面K是001啊,零一也就是PID对吧,PID是零一的数据都进来了。那往下走吧,它其实就是一个封装的过程,好下。看看是否等于L。你判断不等于不等于,那就相当于是这个产品对吧?啊产品,那你看一下这个。这是产品表啊啊。产品表好往下走。又来了啊,再下下。这回就变成了奥表吧。在奥表上好。好,那往下走。添加进去。它不止一个。一是几个了,哎,就两个是吧。输两个值,哎,往出写就行了,那这个地方呢,就相当于把这个table包里的数据重新进行一个设置。
21:01
是不是增加了一个小米啊,哎,这里增加一个小米哈,然后再来,还有一次循环,诶,再来。就OK了啊这个。好,全程运行,我快速的把它跑完。走完之后,最终的结果就是我们看到的这种情况。也就说在它的map端啊,Map端对这两张表呢,进行拆分啊拆分拆分之后呢,最主要的是设置它的P。是什么?是不是这两张表中的公共字段呢?哎,关联表啊,关联的字段那它为K,那剩下的内容都为Y6啊,同时要加上一个flag标记为了什么?在你六端处拿它去区分呢。那剩下的事就简单多了哈,剩下的事就在re端,通过这个标记进行反推,进行一个设置啊。是招引的一个过程。那么这个交易的过程大家有没有想过?
22:01
有什么不好的地方?没有什么不好的地方。那么大部分这个代码,你就说这个招具体的招引工作是不是都在60端进行对角的一个招呢。那么在reduce端噪音想一想reduce多还是map端?那肯定是卖不多是吧,那么你把所有的业务都扔到一个reduce里面去做,去做交易这种工作。那是不是性能极低呀,哎,有可能这个就导致你这个数据倾斜啊,甚至机器的一个内存不够用崩溃。那怎么办呢?其实还有很多好的方法来解决它哈。来看一下,这是radio的一个缺点。在这种方式中,合并的操作在reduce阶段完成。reduce端的处理压力。特别大啊,特别大外B节点呢,运行这个负载的值很低,因为它就是负责一个标记是吧?啊标记拆分就发过来了,自然利润率不高啊,且在维度酸极易产生数据倾斜。
23:07
说的这个数据信息,某几个reduce,这个工作量特别特别大,那这时候怎么办呢。采用脉端实现对数据的一个合并。你原来说你在reduce端这个泡水,那能不能把这个合并的过程拿到这个。你不就两张表吗?我能不能提前预缓存一张表?然后你另一张表,哎,我正常来读。这个在内存中,那能缓存到内存中的表能大吗?是不是肯定不可能大呀,哎,那就是大表和小表的时候,就可以将这张小表缓存到内存中,那什么样算小表呢?像这种产品表,它就是小表。你产品表再大能多少?这这几兆啊啊,顶多几百兆。
24:00
这意思哎,他不会太大,产品能有那么多吗?那你得是什么样的这个网站呢。所以说那就可以把它缓存到内存中,然后对这个订单表进行一个招聘。
我来说两句