通过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,执行结果如下:
Step_2:把Spark安装目录下的"README.md"复制到HDFS系统上
在Master节点上新启动一个命令终端,并进入到Spark安装目录下。关于hadoop dfs命令参数如下:
把文件复制到HDFS的root文件夹下:
进入到web页面,会发现该文件已经成功上传到HDFS上:
Step_3:在Spark shell之下编写代码,操作上传的“README.md”
在spark shell环境下的执行“sc”会自动帮助生产的话就变量:
sc就是SparkContext的实例,这是在启动Spark Shell的时候系统帮助用户自动生成的,SparkContext是把代码提交到集群或者本地的通道,编写Spark代码,
无论要运行本地还是集群都必须有SparkContxt的实例。
读取“README.md”文件:
把读取的内容保存到readme这个变量,其实readme是一个MappedRDD,在Spark的代码编写中,一切都是基于RDD操作的。
从读取的文件中过滤出所有的"Spark"这个词:
此时生成了一个FilteredRDD。
统计一下"Spark"一共出现了多少次:
从执行的结果,发现“Spark”这个词一共出现11次。在Spark shell的web控制台,如下图:
发现控制台显示提交一个任务并成功完成,单击任务可以查看执行详情!
如果还验证Spark Shell对README.md这个文件中"Spark"出现11次是否正确,执行如下命令:
第二部分 使用Spark的cache机制观察一下效率的提升
在spark shell上执行成功一次count命令之后,连续执行三次,进入到web控制台,显示如下:
此时前后执行三次count耗时分别是1s、78ms、41ms。随着执行次数的增加,操作的费时也会逐渐降低!这是Spark的cache带来的速度提神,基于cache是Spark计算的核心之一!