You need to enable JavaScript to run this app.
文档中心
E-MapReduce

E-MapReduce

复制全文
下载 pdf
Serverless Spark 作业:基于 Spark connect
创建 Spark Connect App
复制全文
下载 pdf
创建 Spark Connect App

Python Client 创建

以下示例用于从客户端创建一个新的 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()

参数说明:

参数 / 方法

是否必填

说明

region("<region>")

是

指定地域信息。

credentials(StaticCredentials("<your-ak>", "<your-sk>"))

是

指定访问凭证,包含 Access Key 和 Secret Key。

queue("<your_queue_name>")

否

创建 Spark Connect App 时指定队列名称,不填时使用默认值为“公共队列”。

allowOtherUsers(flag)

否

设置是否允许其他用户访问 Spark Connect App,默认值为 False。

getOrCreateApp()

是

创建或获取 Spark Connect App,返回 App 对象。

app.getServerId()

否

获取 Spark Connect App ID。

app.getStatus()

否

获取 App 状态。

app.getTrackingUrl()

否

获取 Tracking URL,通常用于跳转到作业/应用详情页或监控页面。

app.cancel()

否

关闭 App。

Java Client 创建

以下示例用于从客户端创建一个新的 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()

参数说明:

参数 / 方法

是否必填

说明

region("<region>")

是

指定地域信息。

credentials(StaticCredentials("<your-ak>", "<your-sk>"))

是

指定访问凭证,包含 Access Key 和 Secret Key。

queue("<your_queue_name>")

否

创建 Spark Connect App 时指定队列名称,不填时使用默认值为“公共队列”。

allowOtherUsers(flag)

否

设置是否允许其他用户访问 Spark Connect App,默认值为 False。

getOrCreateApp()

是

创建或获取 Spark Connect App,返回 App 对象。

app.getServerId()

否

获取 Spark Connect App ID。

app.getStatus()

否

获取 App 状态。

app.getTrackingUrl()

否

获取 Tracking URL,通常用于跳转到作业/应用详情页或监控页面。

allowOtherUsers(flag)

否

关闭 Spark Connect App。

EMR 控制台创建
  1. 登录 EMR Serverless 控制台。

  2. 在顶部菜单栏中,根据实际场景,下拉选择地域和项目空间。

  3. 单击作业中心> 作业管理或作业实例进入创建作业页面。
    Image

  4. 配置作业参数,并提交。

    1. 配置作业基本信息,参数说明见下表。

      参数

      配置操作

      作业名称

      本次 Spark Connect App 的名称,创建后不可更改。

      作业类型

      创建的 Spark Connect App 的类型。

      执行资源

      执行作业使用的EMR资源,分资源类型下拉框和队列/项目下拉框。
      可选择具体资源,支持通过名称或ID搜索。

      开发模式

      • UI:通过可视化界面提交作业内容。
      • JSON:通过 JSON 方式提交作业内容,更适合批量配置或复用已有配置。例如:
    2. 配置作业内容,不同开发模式下的参数入口不一致,参数说明可参见下表。

      UI 模式参数

      JSON 模式参数

      是否必填

      说明

      EngineRuntime

      ServerlessSparkRuntimeVersion

      Y

      选择 Spark 计算引擎环境,支持选择 Spark 版本及对应的 Java Runtime 或 Bolt Runtime。

      • Java Runtime:标准的 Java 运行时。
      • Bolt Runtime:火山引擎自研的原生内核加速引擎,可提升 Spark、Presto 等作业执行速度。详细介绍请参见Spark on Native 引擎:Bolt。

      注意

      作业的 EngineRuntime 参数优先级高于 default 计算组和通用计算组参数。

      依赖 Jar(Jars)

      Jars

      N

      Spark Connect App 依赖的第三方或自定义 JAR 包,Executor 执行任务时会自动加载。
      需上传至 TOS 并在此指定路径。

      依赖 File 资源

      Files

      N

      Spark Connect App 的依赖资源文件。
      需上传至 TOS 并在此指定路径。

      依赖 Archive

      Archives

      N

      Spark Connect App 的依赖 Archive。
      需上传至 TOS 并在此指定路径。

      Spark 参数(Spark Conf)

      SparkConf

      N

      SparkConf 用于在创建 Spark Connect App 时传入运行时配置,包括引擎类型、鉴权信息、访问控制及资源规格等参数。这些配置会在 App 启动阶段生效,直接影响应用的运行模式、可访问性和资源分配。
      例如"spark.emr.connect.engine.allow.other.users": true。

      注意

      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 参数说明:

      配置项

      示例值

      说明

      serverless.spark.access.key

      ${AK}

      Access Key(访问密钥,AK)。用于服务端鉴权与签名计算的身份标识。建议通过环境变量或密钥管理注入,不要明文写死在配置里。

      serverless.spark.secret.key

      ${SK}

      Secret Key(密钥,SK)。用于签名(Signature,签名)计算,属于高敏感信息,必须妥善保管;不要写入日志/文档/代码仓库。

      spark.emr.connect.engine.allow.other.users

      true

      是否允许其他用户连接/访问该 Spark Connect 引擎,默认值为 false。

      spark.executor.instances

      2

      Executor(执行器)实例数量,决定并行度与资源占用。

      spark.executor.cores

      2

      每个 Executor(执行器)的 CPU 核数,与 instances 共同决定总 CPU 资源。

      spark.executor.memory

      4g

      每个 Executor(执行器)的内存(Memory,内存)。

最近更新时间:2026.08.14 15:45:45
这个页面对您有帮助吗?
有用
有用
无用
无用