第一步:通过Spark的shell测试Spark的工作
Step1:启动Spark集群,这一点在第三讲讲的极为细致,启动后的WebUI如下:
Step2:启动Spark Shell:
此时可以通过如下Web控制台查看shell的情况:
Step3:把Spark安装目录“README.md”拷贝到HDFS系统上
在Master节点上新启动一个命令终端,并进入到Spark安装目录下:
我们把文件拷贝到HDFS的root文件夹下:
此时,我们观察一下Web控制台,会发现该文件已经成功上传到HDFS上:
Step4:在Spark shell之下操作编写代码,操作我们上传的“README.md”:
首先,我们看一下在Shell环境下的“sc”这个自动帮助我们生产的环境变量:
可以看出sc就是SparkContext的实例,这是在启动Spark Shell的时候系统帮助我们自动生成的,SparkContext是把代码提交到集群或者本地的通道,我们编写Spark代码,无论是要运行本地还是集群都必须有SparkContext的实例。
接下来,我们读取“README.md”这个文件:
我们把读取的内容保存给了file这个变量,其实file是一个MappedRDD,在Spark的代码编写中,一切都是基于RDD操作的;
再接下来,我们从读取的文件中过滤出所有的“Spark”这个词
此时生成了一个FilteredRDD;
再接下来,我们统计一下“Spark”一共出现了多少次:
从执行结果中我们发现“Spark”这个词一共出现了15次。
此时,我们查看Spark Shell的Web控制台:
发现控制台中显示我们提交了一个任务并成功完成,点击任务可以看到其执行详情:
那我们如何验证Spark Shell对README.md这个文件中的“Spark”出现的15次是正确的呢?其实方法很简单,我们可以使用Ubuntu自带的wc命令来统计,如下所示:
发现此时的执行结果也是15次,和Spark Shell的计数是一样一样的。