1. 实验室名称:
大数据实验教学系统
2. 实验项目名称:
使用Spark shell
3. 实验学时:
4. 实验原理:
spark-shell命令及其常用的参数如下: ./bin/spark-shell [options]
Spark的运行模式取决于传递给SparkContext的Master URL的值。
• 参数选项–master:这个参数表示当前的Spark Shell要连接到哪个master,如果是local[*],就是使用本地模式启动spark-shell,其中,中括号内的星号表示需要使用几个CPU核心(core),也就是启动几个线程模拟Spark集群。可选地,默认为local。
• 要查看完整的参数选项列表,可以执行“spark-shell —help”命令,如下:
0. $ spark-shell --help
Master URL(即—master参数)的值如下表所示:
5. 实验目的:
掌握Spark Shell帮助命令的使用。
掌握Spark Shell的启动和关闭。
6. 实验内容:
1、查看Spark Shell帮助命令。
2、两种模式(local和standalone)启动Spark Shell。
3、常用Spark Shell命令。
7. 实验器材(设备、虚拟机名称):
硬件:x86_64 ubuntu 16.04服务器
软件:JDK1.8,Spark-2.3.2
在本实验环境中,Spark安装包位于以下位置:/data/software/spark-2.3.2-bin-hadoop2.7.tgz
在本实验环境中,JDK已安装在以下位置:/opt/jdk
在本实验环境中,Hadoop已安装在以下位置:/opt/hadoop器
8. 实验步骤:
8.1 启动Spark Shell方式一:local模式
1、在终端窗口中,键入以下命令,启动spark-shell:
1. $ spark-shell
执行过程如下图所示:
从上图中可以看出,Spark Shell在启动时,已经帮我们创建好了SparkContext对象的实例sc和SparkSession对象的实例spark,我们可以在Spark Shell中直接使用sc和spark这两个对象。另外,默认情况下,启动的Spark Shell采用local部署模式。
2、在spark-shell中,键入以下命令,退出Spark Shell:
1. :quit
8.2 启动Spark Shell方式二:standalone集群模式
1、先要确保启动了Spark集群。在终端窗口下,执行以下命令:
$ cd /opt/spark
$ ./sbin/start-all.sh
2、然后启动spark-shell。在启动spark-shell时,要指定—master参数,如下所示(注意:请将以下命令中的localhost替换为虚拟机实际的主机名):
1. $ spark-shell --master spark://localhost:7077
执行过程如下图所示:
8.3 Spark Shell常用命令
1、可以在Spark Shell里面输入Spark代码进行开发调试。
例如,在一个启动了的spark-shell窗口下,执行如下图所示的代码:
2、可以Spark Shell中键入以下命令,查看Spark Shell常用的命令:
1. :help
输出如下图所示:
3、测试:paste命令。在Spark Shell中,键入以下命令,进入paster模式:
1. :paste 2. val r = 5 3. val pi = 3.14 4. val area = pi * r * r 5. println("面积为:" + area)
同时按下Shift+Enter,执行以上代码,输出内容如下:
面积为:78.5
执行过程如下图所示:
9. 实验结果及分析:
实验结果运行准确,无误
10. 实验结论:
经过本节实验的学习,通过学习Spark集群环境搭建(standalone模式),进一步巩固了我们的Spark基础。
11. 总结及心得体会:
Spark Shell支持Scala和Python语言。
Spark Shell在启动时,已经帮我们创建好了SparkContext对象的实例sc和SparkSession对象的实例spark,我们可以在Spark Shell中直接使用sc和spark这两个对象。
Spark Shell本身就是一个Driver程序,里面已经包含了main方法。(一个Driver程序就包括main方法和分布式数据集。)
—master:这个参数表示当前的Spark Shell要连接到哪个master。默认情况下是使用local模式。。
12、实验知识测试
1.1 Spark 的 master 和 worker 通过什么方式进行通信的? ( D )
• A.http
• B.nio
• C.netty
• D.Akka
扩展资料
AKKA把并发操作的各种复杂的东西都统一的做了封装.我们主要关心的是业务逻辑的实现,只需要少量的关心Actor模型的串联即可构建出高可用,高性能,高扩展的应用.
由于AKKA是使用Scala编写的,而Scala是一种基于JVM的语言,因此JAVA对AKKA的支持也是很不错的.Akka自身又是采用微内核的方式来实现的,这就意味着能很容易的在自己的项目中应用AKKA,只需要引入几个akka的Lib包即可。
Akka是一个由Scala编写的,能兼容Sacala和JAVA的,用于编写高可用和高伸缩性的Actor模型框架,它基于了事件驱动的并发处理模式,性能非常的高,并且有很高的可用性,大大的简化了我们在应用系统中开发并发处理的过程。它在各个领域都有很好的表现。