您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# Spark1.0.0 应用程序部署工具spark-submit使用指南
## 一、spark-submit工具概述
### 1.1 什么是spark-submit
spark-submit是Apache Spark官方提供的应用程序提交工具,作为Spark框架的核心组件之一,它为用户提供了统一的应用程序部署入口。在Spark 1.0.0版本中,spark-submit首次作为标准化部署工具被引入,取代了早期版本中分散的提交方式。
### 1.2 核心功能特性
- **多集群支持**:可对接Standalone/YARN/Mesos等集群管理器
- **资源动态分配**:支持运行时调整executor数量、内存大小等参数
- **依赖管理**:自动处理第三方库依赖传递
- **多种语言支持**:兼容Scala/Java/Python应用程序
- **运行模式选择**:支持client/cluster两种部署模式
## 二、基础使用语法
### 2.1 基本命令结构
```bash
./bin/spark-submit \
--class <main-class> \
--master <master-url> \
--deploy-mode <deploy-mode> \
[options] \
<application-jar> \
[application-arguments]
参数 | 必选 | 说明 |
---|---|---|
–class | ✓ | 应用程序主类全限定名 |
–master | ✓ | 集群master地址(spark://host:port, yarn, local等) |
application-jar | ✓ | 打包后的应用JAR路径 |
–deploy-mode | client(默认)或cluster模式 |
# 设置executor内存(默认1G)
--executor-memory 2G
# 设置driver内存(默认1G)
--driver-memory 4G
# 设置executor核心数(默认1)
--executor-cores 2
# 设置总executor数量
--num-executors 10
# 添加额外JAR包
--jars /path/to/jar1.jar,/path/to/jar2.jar
# 添加Python依赖
--py-files /path/to/zip
# 添加配置文件
--files /path/to/config.conf
# 设置并行度
--conf spark.default.parallelism=100
# 开启动态资源分配
--conf spark.dynamicAllocation.enabled=true
# 设置序列化方式
--conf spark.serializer=org.apache.spark.serializer.KryoSerializer
spark-submit \
--class org.apache.spark.examples.SparkPi \
--master local[4] \
examples/jars/spark-examples_2.10-1.0.0.jar \
100
spark-submit \
--class com.mycompany.MyApp \
--master spark://207.184.161.138:7077 \
--executor-memory 20G \
--total-executor-cores 100 \
/path/to/your-app.jar
spark-submit \
--class org.apache.spark.examples.SparkPi \
--master yarn \
--deploy-mode cluster \
--driver-memory 4g \
--executor-memory 2g \
--executor-cores 1 \
examples/jars/spark-examples_2.10-1.0.0.jar \
1000
错误码 | 含义 | 解决方案 |
---|---|---|
ExitCode 13 | 类找不到 | 检查–class参数和JAR包内容 |
ExitCode 52 | 依赖缺失 | 使用–jars添加依赖项 |
ExitCode 134 | 内存不足 | 增加–executor-memory配置 |
# 查看YARN应用日志
yarn logs -applicationId <appId>
# 本地模式日志目录
${SPARK_HOME}/work/app-${app-id}/
内存设置黄金法则:
并行度优化公式:
最优分区数 = max(集群总核数 × 2, HDFS块数 × 1.5)
序列化选择:
参数 | 1.0.0状态 | 最新版变化 |
---|---|---|
–total-executor-cores | ✓ | 已弃用 |
spark.yarn.executor.memoryOverhead | × | 新增 |
spark.kubernetes.* | × | 容器化支持 |
graph TD
A[本地local模式] --> B[Standalone伪集群]
B --> C[YARN测试集群]
C --> D[生产环境部署]
#!/bin/bash
spark-submit \
--class com.prod.Main \
--master yarn \
--deploy-mode cluster \
--driver-memory 8G \
--executor-memory 4G \
--executor-cores 2 \
--num-executors 50 \
--queue production \
--conf spark.sql.shuffle.partitions=200 \
--conf spark.yarn.maxAppAttempts=3 \
/opt/apps/prod-job.jar \
--input hdfs:///data/2023/*.parquet \
--output hdfs:///results/2023-report
”`
注:本文档基于Spark 1.0.0版本编写,部分参数在新版本中可能有变更。实际使用时建议结合具体版本文档进行验证。全文约5200字,包含技术细节、示例代码和实用建议,可作为Spark应用部署的完整参考指南。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。