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



    原创申明: 未经许可,禁止以任何形式转载,若要引用,请标注链接地址
    全文共计2584字,阅读大概需要3分钟
    欢迎关注我的个人公众号:不懂开发的程序猿

    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
    
    • 1

    2、spark-submit语法如下:

    1.	spark-submit [options] <app jar | python file> [app options]
    
    • 1

    其中options的主要标志参数说明如下:

    项目Value
    • —master指定要连接到的集群管理器
    • —deploy-mode是否要在本地(“client”)启动驱动程序,或者在集群中(“cluster”)的一台worker机器上。在client模式下,spark-submit将在spark-submit被调用的机器上运行驱动程序。在cluster模式下,驱动程序会被发送到集群的一个worker节点上去执行。默认是client模式
    • —class应用程序的主类(带有main方法的类),如果运行Java或Scala程序
    • —name应用程序易读的名称,这将显示在Spark的web UI上
    • —jars一系列jar文件的列表,会被上传并设置到应用程序的classpath上。如果你的应用程序依赖于少量的第三方JAR包,可以将它们加到这里(逗号分隔)
    • —files一系列文件的列表,会被到应用程序的工作目录。这个标志参数可被用于想要分布到每个节点上的数据文件
    • —py-files一系列文件的列表,会被添加到应用程序的PYTHONPATH。这可以包括.py、.egg或.zip文件
    • —executor-memoryexecutor使用的内存数量,以字节为单位。可以指定不同的后缀如”512m”或”15g”
    • —driver-memorydriver进程所使用的内存数量,以字节为单位。可以指定不同的后缀如”512m”或”15g”

    8.2 提交SparkPi程序到Spark集群,计算pi值

    请按以下步骤操作。
      1、启动Spark集群(standalone)模式。打开终端窗口,执行以下命令:

    1.	$ cd /opt/spark
    2.	$ ./sbin/start-all.sh
    
    • 1
    • 2

    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
    
    • 1

    参数说明:
    • —master参数指定要连接的集群管理器,这里是standalone模式
    • —calss参数指定要执行的主类名称(带包名的全限定名称)
    • 最后一个参数是所提交的.jar包
      3、查看执行结果。如下图所示:
    在这里插入图片描述

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

    9. 实验结果及分析:

    实验结果运行准确,无误

    10. 实验结论:

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

    11. 总结及心得体会:

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

    在这里插入图片描述

  • 相关阅读:
    【MySQL】用户管理&权限控制
    mybatis入门
    DITA-OT 4.0新特性 - PDF themes,定制PDF样式的新方法
    学术论文引言、正文和致谢格式规范标准 - 易智编译EaseEditing
    swift开发moya,解决http网站无法访问
    抗疫逆行者网页作业 感动人物HTML网页代码成品 网页作业带JS下拉菜单 最美逆行者网页模板 致敬疫情感动人物网页设计制作
    SSM宾馆客房管理系统开发mysql数据库web结构java编程计算机网页源码eclipse项目
    25 kafka消费者组重平衡
    无涯教程-JavaScript - WORKDAY.INTL函数
    [MQ] 补充延迟队列两种方式/生产者确认机制
  • 原文地址:https://blog.csdn.net/qq_44807756/article/details/125551949