使用spark-submit工具提交Spark作业

简介: 使用spark-submit工具提交Spark作业

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的主要标志参数说明如下:

image.png


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、查看执行结果。如下图所示:

fb8b58799cc848b59609d1d4ac21fbad.png


因为有许多输出信息,所以请仔细从中查看执行的计算结果。


9. 实验结果及分析:

实验结果运行准确,无误


10. 实验结论:

经过本节实验的学习,通过学习使用spark-submit工具提交Spark作业,进一步巩固了我们的Spark基础。


11. 总结及心得体会:

对于数据的批处理,通常采用编写程序、打.jar包提交给集群来执行,这需要使用Spark自带的spark-submit工具。

558b8c56fee842cda049df90a91abb2a.png

相关文章
|
SQL 分布式计算 资源调度
线上 hive on spark 作业执行超时问题排查案例分享
线上 hive on spark 作业执行超时问题排查案例分享
|
分布式计算 资源调度 监控
没有监控的流处理作业与茫茫大海中的裸泳无异 - 附 flink 与 spark 作业监控脚本实现
没有监控的流处理作业与茫茫大海中的裸泳无异 - 附 flink 与 spark 作业监控脚本实现
|
3月前
|
SQL 分布式计算 监控
|
4月前
|
分布式计算 Java Serverless
EMR Serverless Spark 实践教程 | 通过 spark-submit 命令行工具提交 Spark 任务
本文以 ECS 连接 EMR Serverless Spark 为例,介绍如何通过 EMR Serverless spark-submit 命令行工具进行 Spark 任务开发。
406 7
EMR Serverless Spark 实践教程 | 通过 spark-submit 命令行工具提交 Spark 任务
|
5月前
|
存储 分布式计算 Hadoop
Spark和Hadoop都是大数据处理领域的重要工具
【6月更文挑战第17天】Spark和Hadoop都是大数据处理领域的重要工具
178 59
|
3月前
|
分布式计算 并行计算 数据处理
|
4月前
|
SQL 分布式计算 监控
在hue上部署spark作业
7月更文挑战第11天
129 3
|
SQL 分布式计算 算法
聊聊 Spark 作业的 commit 提交机制 - Spark并发更新ORC表失败的问题原因与解决方法
聊聊 Spark 作业的 commit 提交机制 - Spark并发更新ORC表失败的问题原因与解决方法
聊聊 Spark 作业的 commit 提交机制 - Spark并发更新ORC表失败的问题原因与解决方法
|
6月前
|
存储 分布式计算 监控
Spark作业的调度与执行流程
Spark作业的调度与执行流程
|
SQL 分布式计算 Hadoop