EMR Serverless Spark 实践教程 | 通过 spark-submit 命令行工具提交 Spark 任务

本文涉及的产品
EMR Serverless StarRocks,5000CU*H 48000GB*H
简介: 本文以 ECS 连接 EMR Serverless Spark 为例,介绍如何通过 EMR Serverless spark-submit 命令行工具进行 Spark 任务开发。

前提条件

已安装 Java 1.8 或以上版本。


操作流程

步骤一:下载并安装 EMR Serverless spark-submit 工具

  1. 单击emr-serverless-spark-tool-0.1.0-bin.zip,下载安装包。
  2. 执行以下命令,解压并安装EMR Serverless spark-submit工具。
unzip emr-serverless-spark-tool-0.1.0-bin.zip


步骤二:配置相关参数

  1. 执行以下命令,修改 connection.properties 中的配置。
vim emr-serverless-spark-tool-0.1.0/conf/connection.properties


  1. 推荐按照如下内容对文件进行配置,参数格式为key=value,示例如下。
accessKeyId=yourAccessKeyId
accessKeySecret=yourAccessKeySecret
# securityToken=yourSecurityToken
regionId=cn-hangzhou
endpoint=emr-serverless-spark.cn-hangzhou.aliyuncs.com
workspaceId=w-xxxxxxxxxxxx
resourceQueueId=dev_queue
# networkServiceId=xxxxxx
releaseVersion=esr-2.1 (Spark 3.3.1, Scala 2.12, Java Runtime)


涉及参数说明如下表所示。

参数

是否必填

说明

accessKeyId

执行Spark任务使用的阿里云账号或RAM用户的AccessKey ID。

accessKeySecret

执行Spark任务使用的阿里云账号或RAM用户的AccessKey Secret。

securityToken

RAM用户的Token。

说明

仅在进行STS认证时需要填写该项。

regionId

地域ID。本文以杭州地域为例。

endpoint

EMR Serverless Spark的Endpoint。填写格式为:emr-serverless-spark.<yourRegionId>.aliyuncs.com

本文以杭州地域为例,参数值为emr-serverless-spark.cn-hangzhou.aliyuncs.com

workspaceId

EMR Serverless Spark工作空间ID。

resourceQueueId

队列名称。默认值为dev_queue。

networkServiceId

网络连接名称。

说明

仅当Spark任务需要访问VPC资源时,才需要填写此项。具体操作,请参见EMR Serverless Spark与其他VPC间网络互通

releaseVersion

EMR Serverless Spark版本号。默认值为esr-2.1(Spark 3.3.1, Scala 2.12, Java Runtime)。



步骤三:提交 Spark 任务

  1. 执行以下命令,进入 EMR Serverless spark-submit 工具目录。
cd emr-serverless-spark-tool-0.1.0


  1. 请按照以下格式提交任务。
  • Java/Scala 类型任务

本文示例使用的 spark-examples_2.12-3.3.1.jar,您可以单击 spark-examples_2.12-3.3.1.jar,直接下载测试 JAR 包,然后上传 JAR 包至 OSS。该 JAR 包是 Spark 自带的一个简单示例,用于计算圆周率π的值。

./bin/spark-submit  --name SparkPi \
--queue dev_queue  \
--num-executors 5 \
--driver-memory 1g \
--executor-cores 2 \
--executor-memory 2g \
--class org.apache.spark.examples.SparkPi \
 oss://<yourBucket>/path/to/spark-examples_2.12-3.3.1.jar \
10000


  • PySpark 类型任务

本文示例使用的 DataFrame.py 和 employee.csv,您可以单击DataFrame.pyemployee.csv,直接下载测试文件,然后上传 JAR 包至 OSS。


说明

  • DataFrame.py 文件是一段使用 Apache Spark 框架进行 OSS 上数据处理的代码。
  • employee.csv 文件中定义了一个包含员工姓名、部门和薪水的数据列表。
./bin/spark-submit --name PySpark \
--queue dev_queue  \
--num-executors 5 \
--driver-memory 1g \
--executor-cores 2 \
--executor-memory 2g \
--conf spark.tags.key=value \
--files oss://<yourBucket>/path/to/employee.csv \
oss://<yourBucket>/path/to/DataFrame.py \
10000


相关参数说明如下:

  • 兼容开源 spark-submit 工具的参数。

参数名称

示例值

说明

--class

org.apache.spark.examples.SparkPi

指定Spark任务的入口类名(Java或者Scala程序),Python程序无需此参数。

--num-executors

10

Spark任务的Executor数量。

--driver-cores

1

Spark任务的Driver核数。

--driver-memory

4g

Spark任务的Driver内存。

--executor-cores

1

Spark任务的Executor核数。

--executor-memory

1024m

Spark任务的Executor内存。

--files

oss://<yourBucket>/file1,oss://<yourBucket>/file2

Spark任务需要引用的资源文件,仅支持OSS资源,多个文件使用逗号(,)分隔。

--py-files

oss://<yourBucket>/file1.py,oss://<yourBucket>/file2.py

Spark任务需要引用的Python脚本,仅支持OSS资源,多个文件使用逗号(,)分隔。该参数仅对PySpark程序生效。

--jars

oss://<yourBucket>/file1.jar,oss://<yourBucket>/file2.jar

Spark任务需要引用的JAR包资源,仅支持OSS资源,多个文件使用逗号(,)分隔。

--archives

oss://<yourBucket>/archive.tar.gz#env,oss://<yourBucket>/archive2.zip

Spark任务需要引用的archive包资源,仅支持OSS资源,多个文件使用逗号(,)分隔。

--queue

root_queue

Spark任务运行的队列名称,需与EMR Serverless Spark工作空间队列管理中的队列名称保持一致。

--conf

spark.tags.key=value

Spark任务自定义参数。

--status

jr-8598aa9f459d****

查看Spark任务状态。

--kill

jr-8598aa9f459d****

终止Spark任务。


  • 非开源 spark-submit 工具的参数。

参数名称

示例值

说明

--detach

无需填充

使用此参数,spark-submit将在提交任务后立即退出,不再等待或查询任务状态。

--detail

jr-8598aa9f459d****

查看Spark任务详情。


  • 不支持的开源 spark-submit 工具的参数如下:
  • --deploy-mode
  • --master
  • --proxy-user
  • --repositories
  • --keytab
  • --principal
  • --total-executor-cores
  • --driver-library-path
  • --driver-class-path
  • --supervise
  • --verbose


步骤四:查询 Spark 任务

  • CLI 方式

查询 Spark 任务状态

cd emr-serverless-spark-tool-0.1.0
./bin/spark-submit --status <jr-8598aa9f459d****>


查询 Spark 任务详情

cd emr-serverless-spark-tool-0.1.0
./bin/spark-submit --detail <jr-8598aa9f459d****>


  • UI方式
  1. EMR Serverless Spark 页面,单击左侧导航栏中的任务历史
  2. 任务历史开发任务页签,您可以查看提交的任务。



(可选)步骤五:终止 Spark 任务

cd emr-serverless-spark-tool-0.1.0
./bin/spark-submit --kill <jr-8598aa9f459d****>


说明

仅能终止处于运行状态(running)的任务。



相关文档

  1. EMR Serverless Spark 版官网:https://www.aliyun.com/product/bigdata/serverlessspark
  2. 产品控制台:https://emr-next.console.aliyun.com/
  3. 产品文档:https://help.aliyun.com/zh/emr/emr-serverless-spark/

EMR Serverless Spark 在 2024年5月正式开启公测,在公测期间可以免费使用最高 100 CU 计算资源,欢迎试用。如果您在使用 EMR Serverless Spark 版的过程中遇到任何疑问,可钉钉扫描以下二维码加入钉钉群(群号:58570004119)咨询。

相关实践学习
【文生图】一键部署Stable Diffusion基于函数计算
本实验教你如何在函数计算FC上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。函数计算提供一定的免费额度供用户使用。本实验答疑钉钉群:29290019867
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
目录
相关文章
|
19天前
|
SQL 存储 缓存
EMR Serverless StarRocks 全面升级:重新定义实时湖仓分析
本文介绍了EMR Serverless StarRocks的发展路径及其架构演进。首先回顾了Serverless Spark在EMR中的发展,并指出2021年9月StarRocks开源后,OLAP引擎迅速向其靠拢。随后,EMR引入StarRocks并推出全托管产品,至2023年8月商业化,已有500家客户使用,覆盖20多个行业。 文章重点阐述了EMR Serverless StarRocks 1.0的存算一体架构,包括健康诊断、SQL调优和物化视图等核心功能。接着分析了存算一体架构的挑战,如湖访问不优雅、资源隔离不足及冷热数据分层困难等。
|
1月前
|
SQL 安全 Serverless
活动实践 | 基于EMR StarRocks实现游戏玩家画像和行为分析
基于阿里云EMR Serverless StarRocks,利用其物化视图和DLF读写Paimon等能力,构建游戏玩家画像和行为分析平台。通过收集、处理玩家行为日志,最终以报表形式展示分析结果,帮助业务人员决策。
|
1月前
|
Serverless BI
有奖实践,基于EMR StarRocks实现游戏玩家画像和行为分析
阿里云EMR-StarRocks联合镜舟科技,基于EMR-StarRocks实现游戏实时湖仓分析,免费试用物化视图、Paimon写入查询等新能力,前45位赢取StarRocks定制T恤、Lamy钢笔,小米充电宝,阿里云拍拍灯等活动礼品,前500位均可获得创意马克杯。
91 3
|
3月前
|
SQL 分布式计算 Serverless
EMR Serverless Spark:一站式全托管湖仓分析利器
本文根据2024云栖大会阿里云 EMR 团队负责人李钰(绝顶) 演讲实录整理而成
217 2
|
4月前
|
SQL 分布式计算 Serverless
阿里云 EMR Serverless Spark 版正式开启商业化
阿里云 EMR Serverless Spark 版正式开启商业化,内置 Fusion Engine,100% 兼容开源 Spark 编程接口,相比于开源 Spark 性能提升300%;提供 Notebook 及 SQL 开发、调试、发布、调度、监控诊断等一站式数据开发体验!
192 3
阿里云 EMR Serverless Spark 版正式开启商业化
|
4月前
|
SQL 存储 NoSQL
阿里云 EMR StarRocks 在七猫的应用和实践
本文整理自七猫资深大数据架构师蒋乾老师在 《阿里云 x StarRocks:极速湖仓第二季—上海站》的分享。
332 2
|
3天前
|
SQL 弹性计算 分布式计算
阿里云 EMR 发布托管弹性伸缩功能,支持自动调整集群大小,最高降本60%
阿里云开源大数据平台 E-MapReduce 重磅推出托管弹性伸缩功能,基于 EMR 托管弹性伸缩功能,您可以指定集群的最小和最大计算限制,EMR 会持续对与集群上运行的工作负载相关的关键指标进行采样,自动调整集群大小,以获得最佳性能和资源利用率。
|
5月前
|
分布式计算 大数据 MaxCompute
EMR Remote Shuffle Service实践问题之阿里云RSS的开源计划内容如何解决
EMR Remote Shuffle Service实践问题之阿里云RSS的开源计划内容如何解决
|
5月前
|
分布式计算 测试技术 调度
EMR Remote Shuffle Service实践问题之集群中落地阿里云RSS如何解决
EMR Remote Shuffle Service实践问题之集群中落地阿里云RSS如何解决
|
3月前
|
SQL 存储 缓存
阿里云EMR StarRocks X Paimon创建 Streaming Lakehouse
本文介绍了阿里云EMR StarRocks在数据湖分析领域的应用,涵盖StarRocks的数据湖能力、如何构建基于Paimon的实时湖仓、StarRocks与Paimon的最新进展及未来规划。文章强调了StarRocks在极速统一、简单易用方面的优势,以及在数据湖分析加速、湖仓分层建模、冷热融合及全链路ETL等场景的应用。
350 8
阿里云EMR StarRocks X Paimon创建 Streaming Lakehouse