以下示例用于从客户端创建一个新的 Spark Connect App,并返回 App ID、状态和 Tracking URL。
from emr_spark_connect import EMRSparkConnectSession, StaticCredentials app = ( EMRSparkConnectSession.builder .region("<region>") .credentials(StaticCredentials("<your-ak>", "<your-sk>")) .queue("<your_queue_name>") .allowOtherUsers(True) .getOrCreateApp() ) print(app.getServerId()) print(app.getStatus()) print(app.getTrackingUrl())
创建 Spark 4.x 版本的 Spark Connect App,创建时需要添加参数:serverless.spark.runtime.version=spark4.1
示例:
from emr_spark_connect import EMRSparkConnectSession, StaticCredentials app = ( EMRSparkConnectSession.builder .region("<region>") .credentials(StaticCredentials("<your-ak>", "<your-sk>")) .queue("<your_queue_name>") .allowOtherUsers(True) .config("serverless.spark.runtime.version", "spark4.1") #创建 Spark 4.x 版本的 Connect App .getOrCreateApp() )
创建完成后,若需要关闭 Spark Connect App,可调用 .cancel(),例如:
app.cancel()
参数说明:
参数 / 方法 | 是否必填 | 说明 |
|---|---|---|
| 是 | 指定地域信息。 |
| 是 | 指定访问凭证,包含 Access Key 和 Secret Key。 |
| 否 | 创建 Spark Connect App 时指定队列名称,不填时使用默认值为“公共队列”。 |
| 否 | 设置是否允许其他用户访问 Spark Connect App,默认值为 False。 |
| 是 | 创建或获取 Spark Connect App,返回 App 对象。 |
| 否 | 获取 Spark Connect App ID。 |
| 否 | 获取 App 状态。 |
| 否 | 获取 Tracking URL,通常用于跳转到作业/应用详情页或监控页面。 |
| 否 | 关闭 App。 |
以下示例用于从客户端创建一个新的 Spark Connect App,并输出 App ID、状态和 Tracking URL。
import com.volc.emr.spark.connect.EMRSparkConnectSession; import com.volc.emr.spark.connect.EMRSparkConnectProvider; import com.volc.emr.spark.connect.StaticCredentials; import com.volc.emr.spark.connect.SparkApp; import org.apache.spark.sql.SparkSession; public class SparkConnectJavaExample { public static void main(String[] args) { SparkApp app = EMRSparkConnectSession.builder() .region("<region>") .credentials(new StaticCredentials("<your-ak>", "<your-sk>")) .queue("<your_queue_name>") .allowOtherUsers(true) .getOrCreateApp(); System.out.println(app.getConnectId()); System.out.println(app.getStatus()); System.out.println(app.getTrackingUrl()); } }
创建完成后,若需要关闭 Spark Connect App,可调用 .cancel(),例如:
app.cancel()
参数说明:
参数 / 方法 | 是否必填 | 说明 |
|---|---|---|
| 是 | 指定地域信息。 |
| 是 | 指定访问凭证,包含 Access Key 和 Secret Key。 |
| 否 | 创建 Spark Connect App 时指定队列名称,不填时使用默认值为“公共队列”。 |
| 否 | 设置是否允许其他用户访问 Spark Connect App,默认值为 False。 |
| 是 | 创建或获取 Spark Connect App,返回 App 对象。 |
| 否 | 获取 Spark Connect App ID。 |
| 否 | 获取 App 状态。 |
| 否 | 获取 Tracking URL,通常用于跳转到作业/应用详情页或监控页面。 |
| 否 | 关闭 Spark Connect App。 |
在顶部菜单栏中,根据实际场景,下拉选择地域和项目空间。
单击作业中心> 作业管理或作业实例进入创建作业页面。
配置作业参数,并提交。
配置作业基本信息,参数说明见下表。
参数 | 配置操作 |
|---|---|
作业名称 | 本次 Spark Connect App 的名称,创建后不可更改。 |
作业类型 | 创建的 Spark Connect App 的类型。 |
执行资源 | 执行作业使用的EMR资源,分资源类型下拉框和队列/项目下拉框。 |
开发模式 |
|
配置作业内容,不同开发模式下的参数入口不一致,参数说明可参见下表。
UI 模式参数 | JSON 模式参数 | 是否必填 | 说明 |
|---|---|---|---|
EngineRuntime | ServerlessSparkRuntimeVersion | Y | 选择 Spark 计算引擎环境,支持选择 Spark 版本及对应的 Java Runtime 或 Bolt Runtime。
注意 作业的 EngineRuntime 参数优先级高于 default 计算组和通用计算组参数。 |
依赖 Jar(Jars) | Jars | N | Spark Connect App 依赖的第三方或自定义 JAR 包,Executor 执行任务时会自动加载。 |
依赖 File 资源 | Files | N | Spark Connect App 的依赖资源文件。 |
依赖 Archive | Archives | N | Spark Connect App 的依赖 Archive。 |
Spark 参数(Spark Conf) | SparkConf | N | SparkConf 用于在创建 Spark Connect App 时传入运行时配置,包括引擎类型、鉴权信息、访问控制及资源规格等参数。这些配置会在 App 启动阶段生效,直接影响应用的运行模式、可访问性和资源分配。 注意 UI 模式下,EngineRuntime 参数以选项的形式传入,若此处提交 EngineRuntime 参数,不会生效。 |
JSON 模式参数提交示例:
{ "JobType": "SparkConnect", "ServerlessSparkRuntimeVersion": "spark<version>", "SparkConf": "serverless.spark.access.key=${AK}\nserverless.spark.secret.key=${SK}\nspark.emr.connect.engine.allow.other.users=true\nspark.executor.instances=2\nspark.executor.cores=2\nspark.executor.memory=4g", "Jars": [ { "fileName": "tos://bucket/path/extra-dependency.jar" } ], "Files": [ { "fileName": "tos://bucket/path/dependency-file" } ], "Archives": [] }
SparkConf 参数说明:
配置项 | 示例值 | 说明 |
|---|---|---|
|
| Access Key(访问密钥,AK)。用于服务端鉴权与签名计算的身份标识。建议通过环境变量或密钥管理注入,不要明文写死在配置里。 |
|
| Secret Key(密钥,SK)。用于签名(Signature,签名)计算,属于高敏感信息,必须妥善保管;不要写入日志/文档/代码仓库。 |
|
| 是否允许其他用户连接/访问该 Spark Connect 引擎,默认值为 false。 |
|
| Executor(执行器)实例数量,决定并行度与资源占用。 |
|
| 每个 Executor(执行器)的 CPU 核数,与 instances 共同决定总 CPU 资源。 |
|
| 每个 Executor(执行器)的内存(Memory,内存)。 |