00:00
啊,那么这里呢,就涉及到一个我们叫消费的方案的优化啊,他说了,呃,我们使用我们的h base呢,来查找数据的时候呢,我们尽可能的采用我们的ookie呢,去精准的定位我们数据的位置啊,也可以采用我们的field,但最好不要采用啊,因为你采用这种呢,性能是非常的差的啊,所以在这种情况下呢,我们说了,咱们要查询我们的数据的时候,就可能涉及到一个主教查询,一个被调查询,因为我们被调用户呢,他也要查询,可是呢,我们肉key当中是体现不出来的,那我们的肉key当中它有一个分区号,然后呢,把那个我们一放在前面,那也就意味着那个CALL1就是主叫用户,那么你拿被叫用户查询的话,你在肉里面是无法直接查到的,那么这样的话,我的查询效率是非常低的,所以基于这样的一个原因,我们才会说我有一个通话记录呢,把它拆分成我们两条数据,那么拆分成两条数据以后,那第一个就是我们的扣号一,那么这个呢,就是我们的扣二,那也就意味着有一条主教,有一条被叫,那么怎么区分我。
01:00
我的数据是主调还是被调呢?我们后面加了一个标志位,一个是一,一个是零啊就是这样,那么你加完标志位一和零之后呢,我们还希望在我查询的时候可以提高效率,所以我们的那个列足呢,也给它区分开了啊,咱们上午呢是这么来考虑一个问题的啊,那么在我们的课件当中啊,他就说了我们要优化我的查询方案了啊,那么这个优化的查询方案呢,首先第一个我增加数据的时候呢,希望能够快一点,第二个呢,我们希望耦合性能够降低一些,所以基于这样的情况呢,我们采用了一个斜处理器的一个功能啊,其实你不拿鞋处理器也可以啊,就是感觉不太好啊,所以用它也没有问题啊,所以我们这里呢,是我们编写协处理器类来协助我们去完成base的相关操作啊,就这意思,那么我们主要呢,是当主教用户插入成功以后呢,去插入我们的背交用户啊,就这么一个过程,但是啊,你不是说什么类都可以去完成这个功能,你必须要遵循相应的规则,所以首先第一个是要创建我们的。
02:00
的鞋处理器的类,那么你创建这个类的话,首先第一个你要继承啊,继承我们的这个叫base of server啊把这个呢,我们要给它拿过来啊,拿过来然后呢,我这里用红色表示一下啊,嗯,然后呢,接下来你这边给它继承之后呢,我们应该重写它的方法,为什么呢?因为我们说了,咱们的鞋处理器呢,类似于我们关数据库当中的那个触发器,当什么什么条件被触发的时候,我该怎么怎么做,所以啊,它应该有个条件,有一个事件存在,那我们这里呢,恰恰会有相应的方法啊,比方说put之前呢,Put之后啊,诶还有很多的那些方法,咱们就不说了,这个呢,咱们就明白那个啊put和那个post put的区别就可以了,一个是之前,一个是之后,那我们肯定是主教用户保存之后,我们来增加我们的相关的被角数据,所以肯定是在之后,那咱们就重写这个叫post put就可以了,那么在这个方法当中啊,它里面会传一些参数,其中对于我们来讲非常重要的是前面两个。
03:00
第一个是我们上下文的那个对象,嗯,接下来呢,是我们那个put的对象,把这两个拿到就可以了,这边呢,其实还有一个东西,大家看什么东西,Wal的edit啊,一个我们的什么预写日志的一个编辑对象啊,这个咱就不管它了啊,然后呢,下面呢,就是我们具体的那个操作了啊,你的被调用户该怎么做操作,那首先呢,我们先通过我们那对应的操作,把我们的那个。主教用户的rookie给他取过来,取过来以后呢,进行分解,分解之后呢,得到我想要的值,其中有一个叫做flag啊一个标志,因为我们上午讲了,我们增加主教和增加被叫都是put,那只要是put呢,就会被我这个方法给它什么哎处理了,那这样的话它会形成个死循环,我们的程序就会出现错误,所以在这种情况下呢,怎么办?诶我们需要对它做判断,只有它等于一的情况下,才证明我要去增加数据,如果是零的情况下,我们就不再增加了啊,所以我们这里呢,有相应的判断在里面啊,然后呢,判断完成以后没有任何的问题,那这个时候呢,把我的数据呢给它准备好,准备好以后再形成一个我们的put对象,最后呢,给它增加数据就行了,然后这个时候啊,我们的table你给它拿到这个table拿的时候记住你不要自己写个连接对象啊,说我自己初始化吧,哪个连接对象不需要,因为我们当前的环境当中就有对应的什么连接,所以直接盖table就可以了,然后呢,我们这里put,然后在。
04:28
这里要close,这个close我希望大家一定要记住啊,所以我也把它用一个红色,为什么要求大家一定要记住呢?因为有的同学啊,他写完put以后就忘了这句话了,你忘了这句话呀,他会出现什么问题呢?会出现内存溢出啊,就这样会出现内存溢出,导致我们的region serve挂掉啊,这是有可能会出现的啊,所以啊,这个呢,咱们要知道这第一点,第二点呢,我们有的同学也出现了什么,出现了问题,出现什么问题呢?它出现了我们的server啊,挂掉,异常挂掉啊,那么我们的RA server挂掉是什么原因呢?给大家解释一下,之前没事,现在会出问题,恰恰就是因为我们增加了我们的鞋处理器啊,那么鞋处理器一旦它出现问题,就会导致那个R就会挂掉啊,所以如果你现在在做的过程中,你发现你的reason serve挂掉的情况下,你要考虑考虑是不是这个处理写的不对啊,你就看看相应的日志信息是可以看到的啊,我们的那个S当中,我们这里呢会有。
05:28
打开,嗯,打开以后有个这里面会有我们的日志信息,主要呢是我们的,你看一看它的信息是有哪一些啊,看看发生了什么事情,你把这个打开,打开以后呢,它这里面呢,会把你的一些信息呢,给它列出来啊就是这样,那么所以也就意味着在当前场合下,如果出错的话,我们就可能够拆出来,是我们的鞋处理器出现问题,但是啊,我希望呢,就是即使你出问题了,你把错误信息给我弹出来,给我展现出来,你别把region so挂掉了呀,所以基于这样的一种场景呢,那么我们这里给大家说一下,来我们这里找一下,在我们的这边打开啊,在我们的,嗯,就在我们的里面吧,打开我们的资料啊,不这个啊资料也行,大数据框架有一个叫配置文件,这个文件叫的ult,这个应该都有,对不对,都有的情况下,你把这个打开,打开以后呢,你可以搜一下啊,咱们叫啊processor。
06:25
然后呢,我们这里来搜一下,再搜一下以后呢,这里面其实有相应的配置,咱们点点完之后往下走啊,再往下走,往下走了之后呢,那么其中啊,找到这个位置来再往下来在这儿往下看这地方,你看他怎么说的,他表示的就是说我们一旦发生错什么呢,就会什么,哎中止它就会中断,那也就意味着我们的呢,它一旦出错呢,就会导致我们的server呢出现问题,所以我刚才说了,我希望呢,你出错,你把错误信息给我提示出来,然后呢,我这边还能继续跑,还能干别的事情,所以在这种情况下怎么办,把它变成false啊,把这个参数变成false,你这个参数是可以在我们的什么,在我们的那个set站点配置文件里面给它改了,改完了以后就把这个覆盖掉啊,就这意思啊,所以呢,这里我们呢,需要考虑一下啊,就把它变成false来看看我的那个错误信息,否则你挂掉的情况下就感觉啊不是很好了啊,所以我们这里呢介绍。
07:25
一下它有专门的参数去找一找就可以了啊,就是那个嗯。好了,那我们接着呢,往下看看它下面的说明啊,他说了啊,当我们想要使用处理协处理器的时候呢,需要在表描述器的位置来调用相应的方法,所以啊,这个方法呢,我们也给它加上一个我们的红色啊,你要调用相应的方法,然后呢,传递你去写的那个鞋处理器的类。啊,你要把这个找到啊,找到以后只要能够什么找到它就没有任何的问题啊,那我们有的同学可能不这么写,他可能啊这个程序会这么写,懂不看他可能会这么写,举个例子啊,咱们举个例子来,嗯,在我当前的场合下,我们这边来,我们保护这个东西啊,点下它。
08:08
点完以后呢,我们的内他可能不像我现在写个字串,他写什么呢?他写个类,他写个类什么意思,他这么写,他写个test或者叫string啊,举个例子啊个class这么写,这么写行不行啊,这么写是不是也可以啊,有什么不行呢,对不对,因为你的最终目的是不是拿到字符串,你这个字符串恰恰是这个类型的完整的什么完整的类名吧,包含它的包名对不对,那所以说我在程序当中。大家看啊,我在程序当中,我在程序当中是不是就可以直接取就完了,什么意思啊,我这是不可以直接来举个例子啊,你这样如果是一个,如果是一个class传过来的话,那我这是不是就直接点了点叫come on get name啊,我这么写是不是就行了,哎,也可以啊,不是说不行啊,但是你这么写有一个什么问题呢?就是说你要想就这么本身啊,没有任何的问题,这是对的,可以这么写,但是你要记住我这是两个项目吧,一个是一个是我们的吧,那这两个是不是两个不同项目,你在这个项目当中要用到这里面的类,那你是不是应该怎么办,你是不是应该把它过来,把它依赖过来,你也得增加依赖关系啊,如果你要是说啊写个字符串,那字符串我随便写,那就没有这个关系了啊,所以我们这里唯一要考虑的是那个依赖关系啊,你依赖关系只要有的话,这个写什么都不重要啊,写什么都可以,可以传字符串,传个class也可以嘛,反们反正是方法的重载嘛,嗯。
09:34
所以啊,这个呢,我们说一下啊,这是我们的这个鞋处理器,然后接下来呢,他说了啊,我们的鞋处理器呢,我们要给它打包啊,你写完之后呢,要把它打包,打包以后呢,要放到我们base的指定目录下面,就是那个下面library放进去,然后呢,接下来呢,要注意群发,这个要注意群发就意味着当我执行程序的时候呢,它不一定在哪台机器上去执行这个东西,那如果你不群发的话,那么可能在另外一台机上就没有这个架包,就会出现问题啊,所以我们这个打包的时候,你要注意,还有一个这个打包呢,我们说了可以采用两种方式,一个拿我们的idea来打包,一个拿我们的这个ma文来打包啊,那如果你是依赖架包的话,我相信呢,还是那个ma会更方便一些,但是如果是可运行的架包呢,还是我们的idea里面会方便一些啊,所以就要看你打成什么样的架包了啊,然后接下来咱们再往下,下面呢,它有这么一句话,这个咱们并没有做同学们看啊,他这边是修改我们的base site的这个插没,里面呢有个property这个。
10:35
东西。把这个给它加上对吗?这里面确实有没有任何的问题,这是对的,但是我告诉大家我们并没有加,那原因在哪里呢?原因就在于如果你把这个文件给他什么呢?改了的话,他会对所有的表都添加,这个协处理器他会对所有的表全添加啊,但是我们可能不是全添加,为什么?因为咱们这个鞋处理器是不是只针对于我们的主教被教用户啊,那如果你还有别的表的话,不需要这个功能啊,所以在这种情况下,我们就不在这里面加了,除非你说了啊,我希望每个表都加上啊,那这样的话,我们写在配置文件里面,没有这样的要求就不要写了啊,所以这个咱们也要说一下,嗯,然后呢,我回过头来,咱们这边呢,我们刷新。
11:20
刷新以后,那我现在呢,往下来走,大家看我们这里面有个table,这个tables你往这边看,你会发现它的描述信息当中,大家看是不是就由那个processor啊,那里面就把你这个列出来了啊,就这个意思,列出来之后它会在整个价包里面去找这么个类,找到以后直接去调用就可以了啊,这样我们在这儿是能够看到对应的这个鞋处理器的啊好了,那这个呢,什么修改后群发什么我们的什么,呃,给他分发,然后呢,去测试,这个咱们就不说了啊,所以把咱们之前的鞋处理器呢,你简单的回顾一下啊,嗯。
我来说两句