00:00
好了,同学们,接下来我们来讲第三章Spark运行环境,那和所谓运行环境呢?那么首先大家想一想,比方说咱们有一个web的应用程序,你是不是要把它部署到他mca的环境里面才能运行,才能被用户所访问呢?一个道理,咱们自己写的应用程序,它必须要放在我们的一个环境中去执行,它是没有办法独立运行的,为什么它缺少资源呢?同学们啊,所以咱们这个所谓的环境其实就是把资源给你准备好,而你的程序呢,你可以理解为就是计算,当你有了环境,你有了资源,那么才能做计算,对不对?所以他们应该是诶两个相结合的啊。那么我们的环境到底有哪一些呢?咱们往下看啊来,Spark作为一个数据处理框架和计算引擎,它被设计在所有常见的集群环境中执行,在国内工作中主流的环境为盐啊,不过逐渐容器环境啊也慢慢的流行起来啊,那我们接下来就看一看。
01:00
我们18UG所运行的环境都有哪一些?那么这里面大家会发现有一个叫本地运行模式,有一个叫独立运行模式,还有一个叫做雅啊雅运行模式啊,当然了还有一些别的啊,什么S呀,什么K8S呀,还有不同的环境啊,但是我们不可能把每个环境都给大家演示一遍,我们这里呢,把一些常用的环境给大家说一说啊。首先第一个大家看一下,咱们叫local模式,这个local模式就是本地环境,其实啊在咱们之前学习idea开发world的时候就用的是本地环境,但是那个本地环境跟我们接下来要讲的本地环境不太一样,因为咱们之前的本地环境啊,其实是在我们程序当中运行完以后,这个环境就没了,但是我们现在要讲的环境呢,就是你的本地环境啊,就放在那儿,我们想什么时候用就什么时候用啊,就比较方便,而且你运行完了以后还能运行其他的非常的方便啊。所以咱们这个本地环境啊,跟之前那个idea呢,确实还是有一定差别的啊,那我们来看看怎么去部署它,怎么去应用它,那么首先第一个我们要把咱们事先准备好的压缩包上传到我们虚拟机当中,大家看这个呢,在我们资料当中是有的,咱们打开。
02:16
打开当中,这里面会有一个我们的压缩包啊,大家可以看到,在这叫Spark3.0,你把它上传到你的虚拟机当中,我在我的这个地方有一个来。在我的这个位置,大家可以看到我这边就有一个他了,那么你上传完成以后,按照咱们的要求,要把它解压缩到无中文无空格的目录当中啊,咱们给它解压说一下来放到这儿啊,我们写上咱们的来,好,那我们写完以后,咱们的这个Spark啊,咱们的Spark放过来,然后呢,我们写上叫做杠C,然后点点斜杠,把它解压缩到它的上一级去啊来回车,回车以后,那么这个时候它如果解压缩完毕以后,在上一级呢,会生成一个解压缩的目录,所以咱们看一看啊,来回来,回来以后我们来给他看一看,这个时候在这个位置呢,会形成一个文件夹,那好,我现在呢,把它改个名吧,因为我们有不同的环境嘛,所以给它改个名啊,好了,我就写上叫Spark,叫local,就可以了啊,回车回车以后,那这个时候我们现在就会发现它有一个文件夹,那好我。
03:30
我们进去看一看。那么看看以后,大家会发现里面会有很多的目录,其中有个叫B目录,那顾名思义一些脚本程序都会在里面,对吧?有一个叫那configuration叫配置,这个叫date,叫数据,这个叫example,叫例子,对吧?那这个叫驾驶,那就是一些我们的架包了,对吧?哎,就这个意思啊,然后后面的其他呀,什么启动关闭的命令啊,包括的Python r语言,包括我们的K8S这样的一些配置呢,在里面都有,这个咱们暂时就先不关心了,把一些常见的包,咱们知道什么意思就够了啊,那这个文件夹已经解压缩之后,那我们怎么来运行它,怎么把这个环境构建出来呢?大家看很简单,你这么写来。
04:19
我们叫做bin,这个bin里面其中有一个叫cell,一个命令行工具,我们回车,回车之后如果能够正确启动的话,它里面就可以执行一些最基本的Spark的程序,诶就是这样啊,咱们看一看,那么我们在这边启动它的命令行工具,如果成功的情况下,它这边会有一个banner啊,会展示我们的欢迎的界面啊,是这样的,咱们可以稍微等一下啊来,嗯。好,大家可看到这边就已经出来了啊,咱们的welcome啊,欢迎我们使用3.0.0对吧,那么这边会出现一个我们的什么,我们的一个SKY的标记,那好,现在写基本的skyla语法是没有问题的,比方说回车,哎,就是这样,那么skyla语法能写的话,Spark语法在这也能写了,好那么现在我们给大家写一写啊,那么这个写呀,就得把咱们之前的代码做一个简化了,当同学们看我现在呢,写上一个什么呢?我们叫做SC,我为什么要写SC呢?大家还记得吗?在之前的代码当中有一个上下文的环境对象,这个上下文的环境对象在咱们命令行工具当中是事先已经帮你准备好的,大家看在这儿。
05:33
这个地方就叫SC,它里面就是Spark的上下文的环境对象就是它了,好,那我的SC我们点,我们叫text file,然后写上一个路径,我们叫做date啊,我们叫做date,但是这么写有问题,为什么有问题呢?是因为在咱们之前的开发当中,你这么写是因为你的这个地方是有文件的。但是我现在在我们的命令行的工具当中,我去哪读呢?很简单,我们为了操作方便,大家看一下,我打开这个工具,然后找到它刷新,刷新以后有一个叫Spark local点开,点开以后这边有个叫data I,里面什么graph X呀,ML lib呀,Streaming啊,这个我们暂时不关心了,我们创建一个文件啊,咱们创建哎我哎不对,我们把这个删掉啊,把这个删掉,我创建一个什么文件呢?来我们写上叫做word.t。
06:32
好了,写完以后在这里面打开,打开以后直接写上咱们叫hello,咱们叫skyla hello,我们叫Spark啊hello,我们叫做SKY了,行,写完之后,那我现在就准备读取这个文件就可以了啊来。在这里呢,我们写上date,刚才在我们的这个地方,大家看一下,我们启动咱们的命令行工具是在这个路径当中,那么从这个路径当中去找到这个date,再找这个word,所以我这边应该这么写,叫点T,好,然后点,点了以后我们叫flight map,然后我们的质检原则下划线,点split,然后写上一个空格,接下来再写上一个点叫map,再写个括号,然后还写个括号,写个下划线逗号一记住了,这个也是我们的质检原则啊,接下来我们点叫reduce by key。
07:35
然后我们写个下划线加下划线,再来一个点collect回车,你这么写完以后,等同于把咱们之前word count当中的代码写在一行当中,在命令行工具里面执行。那好,我们来看看效果,你会发现结果其实已经出来了,3SKY2和SPARK1,这个跟咱们之前准备的数据是完全相同的,如果你能正确的把这个结果展现出来,你当前的本地环境就是OK的。
我来说两句