通过Spark Shell测试Spark集群以cache机制

第一部分  通过Spark的shell测试Spark的工作

Step_1:启动spark-shell

启动Spark集群,然后启动Spark Shell,进入到目录下:/usr/local/spark/spark-1.4.0-bin-hadoop1/sbin,执行名spark-shell,执行结果如下:

通过Spark Shell测试Spark集群以cache机制

    

     Step_2:把Spark安装目录下的"README.md"复制到HDFS系统上

在Master节点上新启动一个命令终端,并进入到Spark安装目录下。关于hadoop dfs命令参数如下:

通过Spark Shell测试Spark集群以cache机制

把文件复制到HDFS的root文件夹下

通过Spark Shell测试Spark集群以cache机制

进入到web页面,会发现该文件已经成功上传到HDFS上:

通过Spark Shell测试Spark集群以cache机制

Step_3:在Spark shell之下编写代码,操作上传的“README.md”

在spark shell环境下的执行“sc”会自动帮助生产的话就变量:

通过Spark Shell测试Spark集群以cache机制

sc就是SparkContext的实例,这是在启动Spark Shell的时候系统帮助用户自动生成的,SparkContext是把代码提交到集群或者本地的通道,编写Spark代码,

无论要运行本地还是集群都必须有SparkContxt的实例。

读取“README.md”文件:

通过Spark Shell测试Spark集群以cache机制

把读取的内容保存到readme这个变量,其实readme是一个MappedRDD,在Spark的代码编写中,一切都是基于RDD操作的

从读取的文件中过滤出所有的"Spark"这个词:

通过Spark Shell测试Spark集群以cache机制

此时生成了一个FilteredRDD

统计一下"Spark"一共出现了多少次:

通过Spark Shell测试Spark集群以cache机制

从执行的结果,发现“Spark”这个词一共出现11次。在Spark shell的web控制台,如下图:

通过Spark Shell测试Spark集群以cache机制

发现控制台显示提交一个任务并成功完成,单击任务可以查看执行详情!

如果还验证Spark Shell对README.md这个文件中"Spark"出现11次是否正确,执行如下命令:

通过Spark Shell测试Spark集群以cache机制



第二部分 使用Spark的cache机制观察一下效率的提升

在spark shell上执行成功一次count命令之后,连续执行三次,进入到web控制台,显示如下:

通过Spark Shell测试Spark集群以cache机制

此时前后执行三次count耗时分别是1s、78ms、41ms。随着执行次数的增加,操作的费时也会逐渐降低!这是Spark的cache带来的速度提神,基于cache是Spark计算的核心之一!