千家信息网

Spark1.0.0 应用程序部署工具spark-submit怎么用

发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,这期内容当中小编将会给大家带来有关Spark1.0.0 应用程序部署工具spark-submit怎么用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。随着Spark的
千家信息网最后更新 2025年12月03日Spark1.0.0 应用程序部署工具spark-submit怎么用

这期内容当中小编将会给大家带来有关Spark1.0.0 应用程序部署工具spark-submit怎么用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。





随着Spark的应用越来越广泛,对支持多资源管理器应用程序部署工具的需求也越来越迫切。Spark1.0.0的出现,这个问题得到了逐步改善。从 Spark1.0.0开始,Spark提供了一个容易上手的应用程序部署工具bin/spark-submit,可以完成Spark应用程序在 local、Standalone、YARN、Mesos上的快捷部署。

1:使用说明
进入$SPARK_HOME目录,输入bin/spark-submit --help可以得到该命令的使用帮助。

  1. hadoop@wyy:/app/hadoop/spark100$ bin/spark-submit --help

  2. Usage: spark-submit [options] [app options]

复制代码



Options:
--master MASTER_URL spark://host:port, mesos://host:port, yarn, or local.
--deploy-mode DEPLOY_MODE driver运行之处,client运行在本机,cluster运行在集群
--class CLASS_NAME 应用程序包的要运行的class
--name NAME 应用程序名称
--jars JARS 用逗号隔开的driver本地jar包列表以及executor类路径
--py-files PY_FILES 用逗号隔开的放置在Python应用程序PYTHONPATH上的.zip, .egg, .py文件列表
--files FILES 用逗号隔开的要放置在每个executor工作目录的文件列表
--properties-file FILE 设置应用程序属性的文件放置位置,默认是conf/spark-defaults.conf
--driver-memory MEM driver内存大小,默认512M
--driver-java-options driver的java选项
--driver-library-path driver的库路径Extra library path entries to pass to the driver
--driver-class-path driver的类路径,用--jars 添加的jar包会自动包含在类路径里
--executor-memory MEM executor内存大小,默认1G

Spark standalone with cluster deploy mode only:
--driver-cores NUM driver使用内核数,默认为1
--supervise 如果设置了该参数,driver失败是会重启

Spark standalone and Mesos only:
--total-executor-cores NUM executor使用的总核数

YARN-only:
--executor-cores NUM 每个executor使用的内核数,默认为1
--queue QUEUE_NAME 提交应用程序给哪个YARN的队列,默认是default队列
--num-executors NUM 启动的executor数量,默认是2个
--archives ARCHIVES 被每个executor提取到工作目录的档案列表,用逗号隔开

关于以上spark-submit的help信息,有几点需要强调一下:
使用类似 --master spark://host:port --deploy-mode cluster会将driver提交给cluster,然后就将worker给kill的现象。



如果要使用--properties-file的话,在--properties-file中定义的属性就不必要在spark-sumbit中再定义了, 比如在conf/spark-defaults.conf 定义了spark.master,就可以不使用--master了。关于Spark属性的优先权为:SparkConf方式 > 命令行参数方式 >文件配置方式,具体参见Spark1.0.0属性配置。
和之前的版本不同,Spark1.0.0会将自身的jar包和--jars选项中的jar包自动传给集群。
Spark使用下面几种URI来处理文件的传播:
file:// 使用file://和绝对路径,是由driver的HTTP server来提供文件服务,各个executor从driver上拉回文件。
hdfs:, http:, https:, ftp: executor直接从URL拉回文件
local: executor本地本身存在的文件,不需要拉回;也可以是通过NFS网络共享的文件。
如果需要查看配置选项是从哪里来的,可以用打开--verbose选项来生成更详细的运行信息以做参考。


2:测试环境
测试程序来源于使用IntelliJ IDEA开发Spark1.0.0应用程序,将测试其中的WordCount1和WordCount2这两个Class。
测试数据来源于搜狗的用户查询日志(SogouQ),详见Spark1.0.0 开发环境快速搭建,虽然用这个数据集测试不是很理想,但由于其完整版足够大,可以分割其中部分数据进行测试,在加上其他例程需要使用,将就采用了这个数据 集。实验中分别截取100000行(SogouQ1.txt)和200000行(SogouQ2.txt)做实验。


3:准备工作
A:集群
切换到用户hadoop启动Spark1.0.0 开发环境快速搭建中搭建的虚拟集群

  1. [hadoop@hadoop1 ~]$ su - hadoop

  2. [hadoop@hadoop1 ~]$ cd /app/hadoop/hadoop220

  3. [hadoop@hadoop1 hadoop220]$ sbin/start-all.sh

  4. [hadoop@hadoop1 hadoop220]$ cd ../spark100/

  5. [hadoop@hadoop1 spark100]$ sbin/start-all.sh

复制代码


B:客户端
在客户端切换到用户hadoop并切换到/app/hadoop/spark100目录,将实验数据上传hadoop集群,然后将使用IntelliJ IDEA开发Spark1.0.0应用程序生成的程序包复制过来。

  1. mmicky@wyy:~/data$ su - hadoop

  2. hadoop@wyy:~$ cd /app/hadoop/hadoop220

  3. hadoop@wyy:/app/hadoop/hadoop220$ bin/hdfs dfs -mkdir -p /dataguru/data

  4. hadoop@wyy:/app/hadoop/hadoop220$ bin/hdfs dfs -put /home/mmicky/data/SogouQ1.txt /dataguru/data/

  5. hadoop@wyy:/app/hadoop/hadoop220$ bin/hdfs dfs -put /home/mmicky/data/SogouQ2.txt /dataguru/data/

复制代码


检查SogouQ1.txt的块分布

  1. hadoop@wyy:/app/hadoop/hadoop220$ bin/hdfs fsck /dataguru/data/SogouQ1.txt -files -blocks -locations -racks

  2. Connecting to namenode via http://hadoop1:50070

  3. FSCK started by hadoop (auth:SIMPLE) from /192.168.1.111 for path /dataguru/data/SogouQ1.txt at Sat Jun 14 03:47:39 CST 2014

  4. /dataguru/data/SogouQ1.txt 108750574 bytes, 1 block(s): OK

  5. 0. BP-1801429707-192.168.1.171-1400957381096:blk_1073741835_1011 len=108750574 repl=1 [/default-rack/192.168.1.171:50010]

复制代码


检查SogouQ2.txt的块分布

  1. hadoop@wyy:/app/hadoop/hadoop220$ bin/hdfs fsck /dataguru/data/SogouQ2.txt -files -blocks -locations -racks

  2. Connecting to namenode via http://hadoop1:50070

  3. FSCK started by hadoop (auth:SIMPLE) from /192.168.1.111 for path /dataguru/data/SogouQ2.txt at Sat Jun 14 03:48:07 CST 2014

  4. /dataguru/data/SogouQ2.txt 217441417 bytes, 2 block(s): OK

  5. 0. BP-1801429707-192.168.1.171-1400957381096:blk_1073741836_1012 len=134217728 repl=1 [/default-rack/192.168.1.173:50010]

  6. 1. BP-1801429707-192.168.1.171-1400957381096:blk_1073741837_1013 len=83223689 repl=1 [/default-rack/192.168.1.172:50010]

复制代码


切换到spark目录并复制程序包

  1. hadoop@wyy:/app/hadoop/hadoop220$ cd ../spark100

  2. hadoop@wyy:/app/hadoop/spark100$ cp /home/mmicky/IdeaProjects/week2/out/artifacts/week2/week2.jar .

复制代码



4:实验
下面给出了几种实验CASE的命令,具体的运行架构会抽取几个例子在Spark1.0.0 on Standalone 运行架构实例解析说明。



在使用spark-submit提交spark应用程序的时候,需要注意以下几点:
集群外的客户机向Spark Standalone部署Spark应用程序时,要注意事先实现该客户机和Spark Standalone之间的SSH无密码登录。
向YARN部署spark应用程序的时候,注意executor-memory的大小,其内存加上container要使用的内存(默认值是1G)不要超过NM可用内存,不然分配不到container来运行executor。

上述就是小编为大家分享的Spark1.0.0 应用程序部署工具spark-submit怎么用了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。

程序 应用 应用程序 文件 运行 代码 集群 测试 内存 目录 路径 实验 工具 客户 属性 数据 逗号 切换 开发 命令 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 vb程序中怎么读出数据库中 倩女幽魂雪中情服务器 作品数据库 股票历史数据如何保存到数据库 数据库中怎么把两个表联系在一起 高港区四叶草软件开发工作室 余姚敏捷软件开发平台 服务器数据库进不去的怎么办 山东省教育厅中小学网络安全 测试简单还是数据库简单 太湖网络安全宣传周 博途v17连接数据库 nova9升级连接不到服务器 网络安全审查办公室设在哪儿 如何用ssh连接到云服务器 郑州市公安局网络安全举报热线 易网科技软件开发创始人 服务器文件管理安卓 吴中区大数据软件开发优惠吗 提取安卓设备应用数据库 数据库导入数据的功能 网络安全法开始发布的时间是 专业网络技术服务好处 浪潮服务器进图形界面 redis数据库怎么登录 iaas服务器 东湖租房软件开发 安徽家用软件开发成本价 退伍军人可以当软件开发 百将微聚互联网科技
0