00:00
呃,这边不幸的是什么呀,不幸的是咱们现在集群当中所安装的这个have的3.1.2跟SPA3.0.0呢,它就是不兼容的,这个其实主要因为是什么呀。主要因为SPA3.0这个有点太新了,你知道吗?啊,因为大家都知道SPA3.0是不是今年前两三个月才发布的呀,对吧?啊,那have3.1.2呢,肯定是还目前have目前还没有针对这个这个3.0的这个版本吧,所以说这个不兼容啊,也是意料之中的,意料之中的啊,那既然不兼容的话呢,那咱们就得想办法去解决这兼容性问题了,那怎么解决就按照我刚才说的就行啊,咱们去下载哎3.1.2的源码,还有源码啊,然后呢,修改啊,它那个跟po啊,就是副po文件当中的啊那个。那个SPA的依赖,把它版本改成3.0,这时候你就编译就行了啊,因为有有的情况下,其实你编译之后呢,有时候即便这个版本不一致,它有有可能也是怎么样的呀,也是直接通过的,对不对,因为它有可能我并没有引用到那些被去掉的API,对吧?那所以说啊,我有有些情况呢,也是可以直接通过的啊,但是咱们这儿呢,是有兼容性问题的,那肯定会报报错,那报错的话呢,那你就根据相关提示去改就行了啊,那直道不报错,然后最终获取我们所需的包就行,这样的一个过程啊,然后这个编译的这个呃步骤呢,咱们呃在这个教室的这个环境当中,很就是很容易失败啊,很失败,因为什么?因为这个呃,你编辑的过程肯定需要,嗯,通过这个没问去下载大量的依赖对吧,那下依赖这个需要网络,咱们这个网太慢了啊,特别容易超时失败啊,那是在这个教室的环境下呢,不好做啊,这块呢,咱就不演示了啊,这边我已经把这个编译好的包呢给大家提供好了啊,已经用好了。
01:45
之前给大家发的那个hive包,那就已经是兼容4SPA的包了啊,已经是了啊好,那咱们现来检查一下啊,这个到底是呃,怎么去判断一下它到底是不是兼容sparkrk呢?大家去检查一下,我怕有的同学可能用的是之前的那个还包,你这在做之前呢,一定要检查一下啊,你现在打开我们的集群,然后呢,进到我们当时安装的那个haveve的目录里边啊OPT猫表,然后呢进到have啊进到have里边呢,进到live目录啊,进到live录,然后LS,然后呢,我们grape一下那gra Spark。
02:20
回车,如果大家呃,把这个Spark相关的炸包找到之后呢啊,它里边是不是有一个这个2.1.2,还有一个什么杠3.0.02.12是SC版本对吧?那咱们这儿呢,呃,如果说后边Spark版本是3.0.0,那就说明你用的have包是兼容SPA3.0的了啊这个大家一定要检查一下啊,因为有些同学可能之前那个have没有用,我发的包用的是之前的,之前那个可能不是32020啊,这个大家注意一下啊啊,那这就是给大家所说的这个兼容性的问题啊。行,那这个检查完之后呢,我们,呃,接下来咱们继续往下进行吧,啊,继续往下进行。啊,那这时候咱们have已经安装好了啊,而且已经是兼容Spark的3.0的了,对吧,那这时候我们就开始给他去部署这个,呃,咱们这个啊,Spark引擎就可以了啊哎,那咱们部署Spark引擎,看看这块我们需要去做哪些事啊,那首先我们要做的第一件事就是需要我们在have所在的节点部署一个Spark。
03:20
啊,在have所在节点部署一个Spark啊啊,那当然当然呢,现在大家可能呃,就会比较比较纠结了啊,纠结什么呀,因为有些同学啊,可能在学咱们这个Spark的时候啊,他所使用的集群是不是有有的同学用的就是咱们那之前那个采集项目的集群呀,对不对,那也就是说你现在这个集群当中是不是已经有Spark了呀。对吧?啊,有这种情况,然后也有有也有同学是什么样的,就是那个,呃,学Spark的时候呢,又单独重新建了一套集群,然后那个采集项目呢,呃,还是之前那个状态啊,里边没有SPA啊是这样的,可能有这样两种情况啊,那给大家说一下两种情况应该怎么去做啊呃,如果大家跟我一样啊,就是这个集群啊,就是之前采集项目那个集群啊,这时候呢,你需要在102这些节点重新装一个S。
04:07
啊,如果说呃,咱们同学这个学Spark用的就是采集项目的集群,也就是你这个集型当中已经有Spark了,那你这个就不用再重新装了啊,那但是大家呢,装此Spark可能装了好几种,对吧?咱们此Spark呢,是不是有那个不同的模式啊对吧?有子弹的lo模式啊,有这个呃,雅安模式啊,还有什么localo模式对不对,你可能装了好几个啊,那这时候呢,你注意啊,你也不用去再重新装了啊,这时候你就用他们其中任意一个就行啊,所谓的用他们其中任意一个就行,怎么用啊,就是咱们一会呢换Spark呢,哎,需要给have这边呢,需要给它配一个环境变量,叫做Spark home啊Spark home是不是指向咱们Spark就行了呀,对吧,你到时候咱们如果说你里边装了多个Spark,你只需要让这个Spark home的指向其中一个就行。这个一定得检查一下啊,看你有没有SPA后这个变量,然后呢,指向其中一个就行啊,Local也行啊,延安也行,或者是什么stand alone也行,都可以啊,为什么都可以,你要知道啊,咱们这这个Spark home指向诶Spark那它的目的是干什么?目的只是为了获取它里边那个依赖。
05:15
啊,只是为了获取依赖,跟你那个配置是没关系的啊,那所以说他们依赖是不是都是一样的呀,所以你指向谁都行啊,这样谁都行,把这点搞清楚就可以了,嗯。好了,那这块咱们解释完了啊嗯,解释完了之后呢,我们现在就开始去部署这个啊,开Spark给引擎,呃,我这儿呢,需要先装一个Spark啊好,那这个呢,是我们,呃Spark这个官网这个下载炸包的这个地址啊,你下载就行了啊,然后这时候呢,我们需要下载哪个呀,我们需要下载这个Spark3.0啊,然后呢,这是不是带有这个海DO3的依赖的这个Spark呀,对吧,咱们把它下载下来,这就是大家学Spark时候用的那个JA包是一样的啊来,那咱们现在把它拿一下。我先找到这个大包下载就不下载了啊,已经在咱们资料当中有了,我进到software,然后make d啊Spark,然后进到Spark啊,那我拿一下Spark的这个安装包。
06:09
来找到我们的资料啊。找到Spark,呃,Spark咱们资料当中是不是有俩呀啊,大家看一下这俩一个是带有海杜3.2这个依赖的,这就是咱们之前学Spark的时候用的啊,那还有一个什么,还有一个是不带had EI的,是without hi doop啊,这是一个纯净版的Spark依赖,那Spark大包,那这俩包呢,我们从Spark官网上都能下载到,这俩都能下载,都是从官网上直接下载下来的,没有经过编译的啊好,那这俩包我们都需要用到啊,先把它传过来,一会再解释啊。都传过来。OK,那不说,那拿过来了,那拿过来之后我们LR一下啊,那现在我们在本地安装的,在海海都102本地安装的应该是谁是带有海都会依赖的,对吧?那这时候咱们给他解啊T-SVF啊Spark,然后呃,海度啊达C啊都OBD。
07:08
抹掉啊。可以先按一下吧。OK。解答完毕。然后我们进到。CD到OBD啊,Model啊,那时候咱们需要将这个Spark的这个名字改一下啊,来MV Spark就保留Spark就可以。OK,那完事了啊,解压就行了,那解压完之后呢,我们就不需要在这个SPA当中做任何的配置了,不用配了啊,因为咱们只需要拿它的依赖就行啊,那这时候咱们需要去配置一个Spark home去指向咱们刚才呃,所部署的这个Spark,然后那个如果同学啊,这个用的就是你这个学Spark时候那个集群,你指向你那个多个SPA当中其中任意一个就可以啊,这个一定得检查一下啊,你可能当时你并没有配合你面料来咱们复制把它拿过来。拿来之后呢,呃,就在咱们之前那个ETC profile.d麦音v.IC里边配就行啊嗯,摁一下O,然后把文档当中咱们这个环境变量拿过来,CTRLC。
08:06
好,那我这呢,O BT model Spark是不是指向我那个了呀,就没问题,那就直接shift z z保存就可以了啊搞定,那当然就是配完之后呢,咱们需要这个source一下让其生效啊CRC。哎,会撤好,那这个完事了啊,搜作完毕,那完事之后呢,这这个Spark本地这个Spark呢,咱们相当于就部署完毕了啊,部署完毕了啊,那部署完之后呢,那接下来咱们需要往下走啊,啊往下走从这个第三这一步开始呢,我们不管大家用的是这个什么样的集群啊,不管是之前采集集群还是SPA的集群,那咱们这一步开始都要都要做了啊,从这一步开始都要开始做了啊,那咱们接着走,那这时候呢,我们需要去哪啊,需要去have当中,注意是have当中啊,去创建一个Spark的配置文件啊,需要配置一个Spark配置文件,那咱们这个配置文件是什么呢?把它拿出来,这个文件名大家应该比较熟悉啊,你看啊,Open Mo在com目录下边,对吧,叫做Spark default.com诶,这个文件大家熟悉不熟悉。
09:09
这个在学SPA的应该应该见到过这个文件吧,对不对,因为我们大家都知道,我咱们大家应该学了那个SPA密应该学了吧。Submitit学了吧,Submitit是不是提交SPA任务的呀,对吧,一个脚本啊,那我们在提交SPA任务的时候,我是不是正正常需要给这个SPA任务需要去传参呀,是不是需要传参,比如说我的ex的内存,这个driver的内存啊,以及我这个master地址是yai呀,还是还是standlo,是不是这个需要传参呀,对吧?啊,那传参的时候,我可以直接在咱们那个Spark submit me的脚本,诶你是不是给他传传参数就可以,可以这样传,或者还可以怎么传呀。是不是也可以在这个Spark default.com里边去穿参,然后它是默认情况下就会读取这里边的配置啊,是不是这样的呀,那同样的道理在这儿呢,我们,诶这个配置文件就是我们专门干什么用的呀,是不是给我们have这边去使用的呀,因为我have大家都知道have one Spark就是干什么,就是你在have里边写circle,然后呢,他给你提交成一个Spark任务对不对,那他提交Spark任务是不是也要传参对不对?所以说那我们在这写的这个文件的作用就是干什么呀,就是给have有客户端用它啊have有客户端会读取这里边的参数,然后呢,去在提交此盘任务的时候去使用啊,那这就是它的作用啊,咱们需要创建出来啊,在have里边创建啊,来创建之后呢,我们里边看看写的是什么内容。
10:33
内容大家应该都比较熟悉啊,来首先第一个spark.master这时候指向咱们Spark那个master啊,对吧,那一般情况下呢,我们在这个集群当中啊,生产集群当中,我们这个Spark的这个使用的这个模式呢,一般都是雅安模式啊,一般都是雅安模式啊,那同样咱们这儿也不例外,海王Spark咱们也是相当是雅安莫世啊,也是雅安末世啊,其实你就可以这么理解啊,这个所谓的亥王Spark就是干什么。
11:00
就是干什么呀。就是have将一条circle是不是封装成一个SPA任务啊,对不对,然后呢,他帮我们进行STEM的提交。能理解吧,啊就实际上就是这样一个一个一个一个东西啊,这样一个东西啊,那当然咱们这的还是延安模式啊延安模式那下边我们这样呢,需要把这俩参数配一下参数大家看能不能看懂啊even log inable等于true,然后呢,Even log DR是不是HDS上一个路径啊对不对,那这个相当于啥呀。这个其实就有点儿类似于咱们那个map producece当中那个什么东西。啊,那个所谓的日志聚集功能啊,日记功能是干什么,是不是将我们任务运行过程当中日志写到哪儿,是不是写到我们H的一个路径啊,对不对,那这边是不是相当于把Spark任务执行过程当中的日志写到HD的一个路径,那我们历史服务器是不是就可以读取这里边儿的。这个历史记录了呀,对不对啊,就相当于类似于那个日志聚集功能啊,把它开启啊,方便我们去查看这个日志嘛,啊,然后往下走。
12:02
下面呢,我们给它可以通过这块呢,去给它配参数,SPAQ点memory等于1G,然后driver呢也是一个G啊,都这么去配就行啊,当然在这里边呢,你也去可以去配咱们Spark当中所有的这个参数啊,Spark当中所有参数在这呢都可以配啊,都可以生效啊,行,这是这个配置啊,当然了,你除了能够在这配,也可以在哪配呢。也可以这样配,也可以在我们的还客户端里边,通过那种set的方式去配,就是set哪个参数哎等于什么,Set哪个参数等于什么,是不是也可以那样去配啊,也是可以的啊,大家知道就行了啊,这是相当于是默认配置,也是全局配置,那如果说你在have客户端里边啊,然后呢,通过S这种方式去配,是不是只对当前会话是有效的呀?啊这个要搞清楚就行啊好,那这个完事啊,这个完事之后呢,我们因为呃是不是需要用到这个路径存储咱们这个任务日志啊呃,这个路径我们需要手动提前创建出来CRC执行一下啊好,那执行之前呢,先检查一下我的集群有没有开启。
13:02
我这海度文还没起啊,没起,那我需要先把海度起一下啊,3D MS这边start雅安。你们稍等一下啊。稍微等一下,等他起来啊。比较慢啊,嗯。来X看一下进程。啊,已经这个启动起来了,然后可能现在这个安全模式还没有退啊,咱们得稍微等一会儿来,我访问一下这个9870页面,看一下安全模式c Mo is on,对吧,那咱们稍微等一会儿来刷新。呃,11秒之后就退了啊,等一会儿。还765等会儿吧,嗯。
14:02
行,Save mode is off对吧,已经退出安全模式了,那这时候呢,我们就可以创建咱们那个Spark历史日志的这个路径了啊走。History啊,已经创建成功了,那行,那到这一步,嗯,我们现第三步就完成了啊完成了啊,然后呢,我们还有一步啊,还有一步啊,咱们需要向HDFS上边上传Spark纯净版的炸包。啊,这边给大家解释一下啊,首先第一个啊,解释什么呢?就是为什么我们还要向HDFS上面去上传一个Spark的炸包。啊,这是为什么?啊,那刚才我们已经在have所在的这个节点,是不是在他的本地已经部署了一个Spark了,那这时候我们为什么还要在HDFS上面再去传一个Spark依赖呢?这是为什么呀?啊,给大家解释一下啊,先说一下,就是我们在have的本地部署Spark,它的这个呃依赖是干什么用的啊,因为是这样的啊,大家都知道我们have on Spark引擎啊,那我需要干什么?首先第一步我需要在have当中写circle啊,那have是不是需要把咱们circle转成一个Spark任务,然后进行提交啊,对吧?那这一步是不是需要用到Spark依赖,那这时候他用的就是他本地的这个Spark啊,那这个任务提交到集群当中,提交集群咱们提交到哪了?是不是提交到盐上面了呀,对不对,那盐会把什么,会把咱们这个任务会干啥,是不是会分配到哪,分配到node manager边上去执行,对吧?
15:37
对不对,那分别到note manager,那现在我们每个note manager上面咱们都有Spark吗。是不是不是啊,对,我现在只在102,是不是1148呀,对不对,那所以说我去执行任务的时候,按理来说我也需要4SPA和依赖。我也是需要Spark依赖的啊,那你需要Spark依赖,那你是不是就得在每个node manner上,每每个node manner上面,是不是正常来说都得部署一个Spark呀。
16:01
对不对啊,那所以说这样一来的话呢,你需要你要做的事比较多了,你需要在每个note matter上面都去部署一个Spark,这个相对来说呢,那就比较麻烦了啊,或者说我们还有另外一种方式,哎,什么方式呢?我们在哪啊,在咱们的HDFS上面去部署一个SPA和依赖。啊,在hfs上,那你部署到hfs上,是不是每个node manager它都是能够访问HS的呀。对不对,那所以说啊,那咱们直接把这个SPA依赖访问到HT放到HT上就行了,那我们每个note note manner去执行任务的时候呢,都可以去从HDFS上边去拉取这个Spark依赖,那当然拉取完之后呢,它不会每次执行任务都拉取啊,我们note manager这呢,是有一个分布式缓存的啊,它会将这个SPA依赖呢,缓存到每个note manager本地的这个磁盘上面啊,也就是只需要拉取一次,那后续再跑任务就不用再拉取了,是这样的一个目的啊,那咱们知道这个事儿就行了啊啊,那这个就是呃,咱们刚才提到的这个,呃,第四步啊,咱们需要向HDFS上面去上传一个Spark依赖啊,然后这边他特殊要求我们,呃,要传的是什么?是那个Spark和纯净版的炸包对吧?要传的是纯净版的,那为什么要传纯净版的呢?传纯净版的,传纯净版也是为了避免这个这个这个冲突的,避免冲突的,那那咱们这儿呢,只有这个这个纯净版里边是不是只有Spark的大牌啊,没有它所依赖。
17:28
他的haveve没有它所依赖的这个,呃,Spark等等这些东,呃,Haveve等呃,Hi doop等等这些啥玩那没有这些东西能够避免一些冲突,所以在这儿呢,咱们传的是纯净版的啊,照这个做就行啊好,那接下来咱们把这步去做一下,好那接下来我们进到OPT software啊进到哪进到Spark。呃,这个是咱们那个纯键板啊,那这时候咱们需要先给它解压啊,碳杠ZXVF啊Spark,然后without开动回车。来R,那接下来我们就要进到刚才解压的这个路径啊,咱们进到哪进到这里边这是不是这S啊,对吧,咱们CD到这。
18:06
NL这里边呢,就是Spark纯净版所有的炸包,那咱们需要把这一大堆的炸包上传到HDFS,好上传到哪个路径呢?看一下啊,在这块呢,他让我们上传到是不是SPAJS这个路径啊,那咱们就创建一个这样的目录啊,CTRLC。然后才能回车。完了之后呢,执行下面这个命令,CTRLC。来把咱们这个里边所有的炸包传到这个路径上,对吧,但是咱这个路径现在不对吧,咱们需要把前边我现在是不是就在这次里边啊,在这那就把这个去掉啊,那我把这个给去掉。那就直接点杠行是不是就行了呀,点杠行,然后呢,到四边这推车。那现在呢,就开始往上传了,这个大包比较多啊,应该是有100来个,咱们需要多等一会儿。比较多啊。
19:02
啊,那这一步完成之后呢,呃,我们这个需要部署的东西就完事了,然后最后呢,我们还需要再改一个配置文件啊,等他传完吧。嗯。啊,行,也不用等啊,咱们这个也不冲突啊,咱们现在就开始改这个配置文件吧,啊,那传完之后咱们改哪个文件呢?改have set啊,改have set,在have set当中呢,我们其实主要配俩参数,第一个参数就是你得告诉have啊,你刚才那个SPA依赖传到HTS,你传到哪了对吧?得告诉他一个路径,那第二一个呢,就是得指明咱们have要使用的引擎是不是得是告诉他得用SPA引擎啊,要不然它默认是不是还是mmr啊,主要是俩参数啊,来,那咱们把这俩参数给它粘过来,然后文档上还有一个这个,一会再给大家解释怎么回事啊好,那咱们修改的是have set文件啊来,这时候我们进到op Mo have。然后再进到康目录。L,那咱们打开have赛的这个配置文件啊,打开它,那打开它之后呢,我们往下拉啊往下拉随便找个地方吧,啊就在这吧,按一下这个O啊,然后呢,把这俩参数粘进来,这俩参数呢,给大家解释一下分别是什么作用,第一个。
20:08
Spark雅安点这时候告诉我们这个Spark所需要,呃,就是咱们海王Spark所需要用,用到的这个依赖在HTS路径是多少啊,来看一下啊,就是这个。啊,照这个写就行,当大家写这个路径的时候呢,一定得注意一个问题啊,哪个问题就是咱们这个HDFS这个主机名和端口号的问题,因为有的同学主机名跟我不一样,端口号呢,有可能也不一样啊,那有的同学这端口可能用的是9820对吧,这还是要注意一下,就看这就行,打开海do的HTFS页面啊,然后呢,你就看这。跟这儿保持一致就行了。啊,跟这儿一致就行了啊,我这呢跟它是一样的,没问题啊,那这是第一个参数,那第二参数什么呢?是配置这个have on Spark这个引擎,你得告诉他啊,Have的执行引擎式SPA,这个默认的是M2啊,默认M2行,那这个咱们就配完了啊,那文档上的还有一个参数,这个参数其实咱们可以不配啊来给大家说一下这个参数是什么。
21:07
这是不是have,然后后边呢,来一个啥Spark点点点time out是不是相当是一个什么have跟这个Spark客户端相连接的一个时间呀,对吧,一个超时时间啊,这个怎么回事,给大家解释一下啊,就是咱们这个have on Spark呢是这样的啊,你配完Spark引擎之后,你打开have的客户端啊,你去执行呃一个计算任务的时候呢,那have这边会启动一个Spark的一个,相当于一个绘画,启动一个Spark的一个绘画。啊,这个启动会画呢,这个需要的时间相对来说比较长啊,启动的时间相对比较长,那有些同学呢,呃,如果说你那个机器太老了,这个太慢啊,会导致你这个启动超时。啊,那超时之后呢,哎,他会报一个这样的错误啊,什么错误呢?就是说呃,Failed To Get a SPA session,这是不是去获取一个SPA会话失败了呀,对不对啊,那当然呢,这个Spark绘画失败的原因可能有很多,可能是你这个Spark引擎你配的有问题,可能你路径啊什么配错了,那这个也是呃起不起来的,那那还有一个原因呢,就是你这个配置如果说都没有问题的话呢,这儿也是起不来,那就可能是你那个机器太慢了啊,如果说你启动失败是由于你机器太慢导致的,你可以改这个参数。
22:30
啊,你让他多多起一会儿,这个能解决,但如果说你并不是因为你这个机器慢,是因为你配置有问题,那导致这个Spark会话启动失败了,那你改这个参数那也没有用,能理解吧啊能理解吧,那一般情况下,咱们现在大家同学这个电脑应该都没问题啊,这个参数,所以你配不配都可以啊,配不配都可以行,那这个说完了啊,那这边到目前为止,我们相当于汉王SPA了,咱们就配置完毕了啊全部配置完毕,OK,那接下来呢,我们就可以去做一把测试了啊咱们做一把测试,那这时候呢,我们呃启动这个嗨,有客户端啊,然后呢,在启动还有客户端之前呢,啊,我还是需要再给大家多多多啰嗦一句啊,启动还有客户端之前,咱们前面是不是提到过呀,咱们正常需要先启动一个ma star去到一个启动一个have so to,对不对,还记得吧,但是这俩是不是有些情况下也不用不一定非得启啊,对不对,给他已经解释过了啊,已经解释过了啊,这个还需要我再重复一遍吗?什么时候需要起,什么时候不用起。
23:26
还用重复吗?还记不记得?又忘了,那我把视频录一下吧。
我来说两句