00:00
好,那现在我们开始部署这个麒麟,部署麒麟,那我们把这个麒麟呢,它的这个安装包呢,先拿一下op software。哎,Kelly刚才已经传上来了,对吧,就是这个啊,咱们安装的系列的是3.0.2的版本,现在官网最新版本呢,已经开始进入到这个4.0了啊,4.0了啊来我们套一下T2-ZSVF8八旗,然后呢杠大C到OPT model掉。能看懂吧,啊来我们接下。好,解完毕啊,然后进到OPT矛。诶好,我们改个名字啊,把这个阿帕奇麒麟改成KYLA改成K列,好我们进到KLY,好,那进到K列到现在,其实啊,假如说你现在已经保证我们集群当中的所有的这个呃环境都是OK的了,其实现在你就可以准准备去启动麒麟了啊,准备集训麟了啊,那现在呢,呃,我要求大家一会儿自己再去启动麒麟之前呢,一定要先检查一下自己的这个呃环境是否是不是准备完毕了,那第一点呢,先考虑一个问题啊,什么问题。
01:08
第一个啊,考虑我们的那个海度是不是正常启动了,我这肯定启动了,对吧,那第二个问题呢,还有谁,还有这个h base是不是能够正常,哎,使用刚才已经完事了,对吧,那还有一个have。Have这边咱们一定得确保一下啊,因为这个使用have的时候,大家可能不同的人有不同的习惯,对吧?啊,有些人我们在have的配置文件当中,我们加上那个masto UI那个参数了,对不对,你加上masto UI参数之后呢,所以说你以后使用have你得怎么办?是不是启动那个MAS2服务啊,对吧,那如果没有加那个参数,是不是就不用启动还有MAS服务了呀,对不对,所以大家呢,得根据你自己的那个配置去决定你have这边要不要起伏,我这边是不是一直都没有没有配那个ma storage uri啊,所以说我正常我之前使用have客户端的时候,直接怎么怎么就能使用,是不是接have之接回车就能使用对不对啊,这是大家要注意的啊,这家注意的啊,那当然大家有些同学呢,可能配了那个ma store UI了,你平时使用have客户端你就得起ma store,那你这时候呢,也要把max刀起起来。
02:14
能理解吧,就是你相当于就是只要确保什么就行了,只要确保你的还客户端是能够正常启动,然后呢,比如说我执行一个受database啊,诶我是能够正常查出来数据的,哎,只要能保证这一点,只要能保证这一点,那你这个have呢,就是OK的,能理解吧,把这个记住啊,啊那这个也起来了,那我们看还要不要起其他的服务啊。还要不要其他服务?其实也有还有一个啊,还有一个我们还得再起一个谁呢。再起一个历史服务器啊,历史服务器,当然这个历史服务器呢,呃,是干什么用的,可能拉现在并不知道,后续等我们讲到麒麟的原理的时候呢,我再给大家讲这个历史服务器是干什么的,但是我们这呢,确保得保证啥呀,是不是得把这个得启动才行啊,得启动才行,好,那这个我们现在它启起来吧,啊来把它提起来怎么启啊,这是map right吧,Map red。
03:05
是my bread吧卖,然后red,然后后边呢应该是杠杠,呃,Demoamon,什么daen-DEMO,然后呢,Start history so吧啊这应该是新的API,新的方法啊,来我们回车。嗯,来GPS。啊,历史服务器是不是已经起来了,注意历史服务器在哪起你知道吗?知道在哪起吗?在哪配的就得在二七在哪配的呀,在哪配是不是在海doop配置文件里能看出来呀,我们去看一下OPT model啊,海杜op啊,然后呢,ETC海杜op里边是不是有一个my set在这个文件里配对吧,打开往下走。隶储器这是不是有地址,你在哪配的,你配到什么什么地方了,就得那起我102配的,我就得在102起,能理解吧,这个一定得看一下啊,别配错了,大家别起错了,好,那现在呢,我们已经这次啊,真正的已经把所有所需要的进程都起来了,大家看啊,就是这么多。
04:04
啊,就是这么多,这里边包含了海杜的HS,包括雅安,包括历史服务器,包括组K,包括h base都写下来了,没错吧,那其实理论上啊,到这一步我们就可以直接启动麒麟了啊直接启动怎么启动呢?带的啊,应该是BK0.sh。S start,这就是启启动,那要停呢,Stop啊,理论上我们就可以直接启了啊,但是现在我们直接启呢,不行,报错会报错啊,为什么会报错呢?这边呢是有这个兼容性问题的。啊,来给大家说一下,咱们这儿这个兼容性问题是谁跟谁的一个兼容性问题啊。在这边呢,呃,经过我们那个测试呢,我发现呢,是麒麟啊,跟这个我们新安装的这个Spark3.0有兼容性问题。啊,有兼容性问题。这个具体的原因是怎么回事啊,我给大家解释一下啊,是这么回事。
05:00
我们这个SPA3.0啊,这个SPA3.0当中,咱们集群当中现在是不是部署了一个SPA3.0对不对,那SPA30该给给谁用的呀?是不是给咱们have用的呀,我们是不是给have用那个Spark引擎用的呀,对吧?在have在那个Spark的3.0当中,SPARK30当中它有一个内置的一个have的一个依赖啊,Have的依赖哪个依赖呢?我们去看一下啊,我们就能能找到我们C到OB的Mo进到哪,进到SPA啊,SPA它的依赖都在哪,是不是都在这里边啊,在这里啊,这里边呢,我们有一个跟have相关的包LS-al啊,然后这个gra一样啊。瑞,Have,这里边有很多跟have相关的包啊,但这里边有一个非常重要,就是谁就是这个。Haveto啊,然后你注意观察这里边。Have的版本都是多少?都是2.3.7对吧,啊,都是3.2.37,也就是说我们因为谁,因为大家得知道啊,我们这个Spark。
06:03
大家要注意Spark,咱们是不是有一个模块叫Spark circle啊,对吧?Spark circle这个大家现在肯定还没学过对吧?是没学呢吧?啊,没学,但是咱们也大致了解Spark circle是干啥用的呀,是不是我们可以通过Spark circle去查询have里边的数据啊,所以说SPA当中有have的依赖,这个东西大家应该能理解对吧?啊,因为我需要去查我的数据嘛啊,然后SPA当中它所依赖的这它所导入的这个have的依赖版本呢?是多少啊,是2.3.7的,但咱们集群当中安的这个,呃,SPA是多少还是多少呢?是3.1.2的啊,3.12的啊,而这个ma star这个包是干什么用的呢?是专门用来和原数据库进行交互的一个依赖。对不对,因为你要想查have里的数据,是不是肯定得读它的原数据啊,对吧,读源数据是不是得有用这个依赖呀,对不对,那这个依赖2.3.7这个炸包啊,跟我们现在have当中的这个炸包,3.1.2里边这个炸包它俩是有冲突的,这个原数据库的版本是不一样的啊,它是有冲突的啊,那所以说呢,大家想一想啊,我们再去启动麒麟的时候。
07:12
咱们去再去启动麒麟的时候啊,是不是会出现一个这样的问题,我们麒麟是不是肯定会加载have的依赖,还会加载谁呀,Spark依赖它也会加载的,因为麒麟是不是底层可以用Spark作为计算引擎啊,对吧?啊也会加载Spark依赖,那这样一来的话,你是不是会加载到两个have ma SPA的ma star的这个炸包啊,对不对,那这俩炸包呢,它就有问题了,就有冲突了啊,那所以说就是因为这个问题导致咱们这个麒麟现在直接启用会报错啊,那所以这块呢,咱们要想解决这个问题,怎么解决呢?怎么解决这个问题啊。你要想从根本上解决这个问题,怎么解决?想从根本上解决,那你可以这样去解决,怎么解决啊,Spark3.0拿过来。把它源码下载下来,下载下来怎么做,把SPA3.0里边have的依赖的版本调到3.1.2,然后呢,去把里边报错的代码全改了,重新打包,是不是重新安装483.0就行了呀,对不对,但是这个没必要啊,那没必要这么做,我这还可以怎么解决呢。
08:12
还怎么解决,我可以啊,啊在麒麟当中啊,咱们改一个文件啊,改一个什么文件呢?改一个它用来寻找Spark依赖的一个文件啊,在这个文件当中呢,咱们把谁过滤掉就行了呀。是不是把那个SPA当中跟haveve那个冲突的那个炸包过滤掉就行了,对不对,跟咱们自己那have冲突的炸包过滤掉就行,过滤掉之后,那是不是我们麒麟的这个可拉帕下边就只有一个have3.1.2的这个炸包了呀,对不对,那这样一来的话呢,就不会有这个问题了啊,实际上那咱们就用后者去解决这个方案就行了,那这个方案要解决起来比较方便,不用编源码啊啊那这个到底改哪个文件呢?来我们大家跟我们去看一下,其实你不用看文档了,看这个文档,看咱们这个,呃,Spark,看麒麟就行,Op Mo,然后P。好进到麒麟,进到麒麟之后呢,我们进到哪进到这个并目录。
09:02
啊,麒麟的并目录里边有很多脚本啊,哎,你看是不是这么多脚本啊,那这么脚本我们一会儿启动麒麟用的是谁呢?用的是这个。Q 0.shstart,它就会启动麒麟啊,然后呢,在这个脚本当中啊,它其实里边调用了我们这个当前路径下的好多好多的脚本,这其中就包括谁呢?其中就包括这个。啊,Find Spark dependencecies这个作用是干什么呢?是不是就是寻找Spark依赖呀,对吧?寻找Spark依根据谁呀?根据Spark home,那咱们是不是也配的Spark home了呀,对不对,那所以这块呢,它会加载Spark依赖,那我们要改的话,是不是就改这个文件就行,改find Spark dependences打开可以简单看一下它这个寻找Spark依赖的逻辑是什么样的啊来看这。他是不是先会判断一下你有没有SPA home对不对,那咱们现在因为我需要给谁,我需要给have配置SPA引擎,Have配置SPA引擎是不是必须得有SPA home对吧?所以咱们这儿呢,是有这个SPA home的,那有home它是不就能够找到SPA依赖啊,就能找到,然后呢,他把这个SPA home这个路径呢,赋给了一个SPA这样的一个变量,对吧?那接下来往下看啊,现在下边它干啥了,大家走是不是去判断SPA home下边有没有那个JA路径啊,对吧,有吧,这里边是不是存了SPA所有的炸包,然后呢,你往下走,下面呢,这就是它核心的这个逻辑了,看这。
10:30
啊,这在干啥呀?Spark dependency,那最终返回的是不是就是Spark dependency,对不对,是export来把它对不对,那接下来往下走,看这个位置啊,看上边看这们怎么做的啊,是不是用了一个find的命令,Find的命令是干啥?Find是不是在某个路径下边去寻找所有的文件呀,对吧?那可以加一些参数去过滤对不对,那OK find的放在哪,是不是SPA后面下边的炸包,这这个路径对不对,然后你看后边杠name,杠name是干啥?
11:03
是不是指明我要找什么样的炸包啊,要什么样的呀,是不是星点这啊,是不是所有的炸包都会被匹配出来,对不对,然后你看它其实本身它自己就已经过滤掉了一部分的炸包了,你看啊。咱们这是啥,是杠name对不对,那还有什么样的叹号杠name,杠name是什么,是我要这样的叹号杠杠name呢,就是我不要这样的对不对,他是不是不要这个log分接的,哎,不要这样的,不要do,不要test的,是不是也不要什么其他的这些东西啊,对不对,那我们现在要干啥,我现在是不是要把have那个MAS道的包过滤掉,那所以咱们可以怎么写。是不是也跟他这样一样,加一个叹号杠name,然后把咱们那个炸纹的名字放这是不是就可以了,那就这么过滤呗,那具体加什么东西呢?诶看这。来把这个拿过来啊,来我复制一下啊,复制一下把这个拿过来,拿过来之后呢,我们放到这里边来。
12:04
摁一下I。啊,看一下按一下I,按完I之后呢,我们空格。然后呢,把这个粘过来,注意啊,这是我们新加的,这是我们新加的啊,咱们新加的部分呢,有这样的两个啊。看能不能看懂。看一看啊,能不能看懂,一个是叹号杠name Jackson,呃,这个其实它不光跟他有冲突啊,因为呃,如果你光把它过滤掉之后呢,你在启动的时候呢,它这个也会报错。啊,这个也会报错啊,这个也会报错啊,有一个会跟Jackson版本相关的一个冲突,我们也把它过滤掉啊,也把它过滤掉啊,那也是最终呢,我们过滤掉的这个炸包呢,是不是有这样的跟它相关的,还有跟它相关的都过滤掉了呀,一个是跟X相关,一个是跟maxl相关,把它俩都过滤掉,那就没问题了啊,然后大家加这个的时候呢,一定要注意一个点什么点呢?前后的空格,这是不是必须得有空格,那你这个后边跟后边的叹号之间是不是也得有空格啊,一定得记得加,你要不加的话呢,这块语法是有问题的啊,把这加上就行了啊,那我们shift在这保存就行了,那这样一来的话呢,你就能够保证麒麟在启动的时候呢,会把那那个冲突的炸包过滤掉啊,可以通过这种方式去解决这个兼容性问题。
13:14
好,那这个依赖冲突的问题,咱们通过这种方式就可以解决了,那我把视频录一下啊。
我来说两句