1. 实验室名称:
大数据实验教学系统
2. 实验项目名称:
使用spark-submit工具提交Spark作业
3. 实验学时:
4. 实验原理:
对于数据的批处理,通常采用编写程序、打.jar包提交给集群来执行,这需要使用Spark自带的spark-submit工具。
一般的部署策略是在一个网关机器上提交应用程序,这个机器和Worker机器部署在一个网络中(例如,Standalone模式的集群中的Master节点)。在此部署策略中,client模式更为合适,client模式中的driver直接跟spark-submit进程一起启动,spark-submit进程在此扮演集群中一个client的角色。应用程序的输入输出依赖于控制台,如此一来,这种模式就特别适合关于REPL(例如,Spark shell)的应用程序。
另一种部署策略是,应用程序通过一台远离Worker节点的机器提交(例如,本地或者便携设备),这种情况下,一般使用cluster模式最小化drivers和executors之间的网络延时。注意,cluster模式暂时不支持于Mesos集群或Python应用程序。
5. 实验目的:
掌握spark-submit工具的使用。
了解spark-submit的主要参数设置。
6. 实验内容:
1、使用spark-submit工具提交Spark自带的样例程序SparkPi程序,计算pi值。
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-submit指令的各种参数说明
1、在Linux环境下,可通过”spark-submit —help”命令来了解spark-submit指令的各种参数说明。
在终端窗口下,执行如下的命令,来查看spark-submit的帮助信息:
1. $ spark-submit --help
2、spark-submit语法如下:
1. spark-submit [options] <app jar | python file> [app options]
其中options的主要标志参数说明如下:
8.2 提交SparkPi程序到Spark集群,计算pi值
请按以下步骤操作。
1、启动Spark集群(standalone)模式。打开终端窗口,执行以下命令:
1. $ cd /opt/spark 2. $ ./sbin/start-all.sh
2、在终端窗口中,执行以下命令,提交SparkPi程序到Spark集群上执行:(注意,执行时请把下面命令中的主机名localhost替换为虚拟机实际的主机名):
1. $ ./bin/spark-submit --master spark://localhost:7077 --class org.apache.spark.examples.SparkPi examples/jars/spark-examples_2.11-2.3.2.jar
参数说明:
• —master参数指定要连接的集群管理器,这里是standalone模式
• —calss参数指定要执行的主类名称(带包名的全限定名称)
• 最后一个参数是所提交的.jar包
3、查看执行结果。如下图所示:
因为有许多输出信息,所以请仔细从中查看执行的计算结果。
9. 实验结果及分析:
实验结果运行准确,无误
10. 实验结论:
经过本节实验的学习,通过学习使用spark-submit工具提交Spark作业,进一步巩固了我们的Spark基础。
11. 总结及心得体会:
对于数据的批处理,通常采用编写程序、打.jar包提交给集群来执行,这需要使用Spark自带的spark-submit工具。