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
这个页面对您有帮助吗?
有用
有用
无用
无用