SparkJob作业接口应用示例
概述
本文指导用户通过调用API的方式,执行Spark作业的完整流程,包括启动Spark作业、查询作业状态和详情、查询spark作业列表等。
本流程假设终端租户已经在Console界面完成AI DataLake的服务授权,且已创建工作空间和Spark端点。API的调用方法请参见如何调用API。
前提条件
- workspace_id:工作空间ID,可在控制台的工作空间管理页面查看。
- endpoint_name:Spark端点名称,可在控制台的端点管理页面查看,或参考查询所有端点列表 - ListV2AllEndpoints获取。
启动Spark作业
调用启动Spark作业接口,提交Spark作业,同时记录接口返回的“job_id”。
- Body:
{ "name" : "spark-jar-job-example", "endpoint_name" : "spark-endpoint", "job_config" : { "type" : "spark_jar_job", "main_class" : "com.example.SparkJobDriver", "main_jar" : "obs://bucket/path/job.jar", "main_args" : [ "--input", "obs://bucket/input", "--output", "obs://bucket/output" ] }, "resource_config" : { "executor_number" : 2, "driver_resource_spec" : { "cpu" : 2000, "memory" : 4096 }, "executor_resource_spec" : { "cpu" : 2000, "memory" : 4096 } } } - 响应示例:
{ "job_id": "1ee7d9db-90ec-xxxx-xxxx-0de936dade77" }
查询Spark作业的状态
调用查询Spark作业状态接口,查询作业状态,等待作业状态变为SUCCEED,表示作业执行完成。
- 请求示例:
GET /v2/workspaces/{workspace_id}/spark-jobs/{job_id}/state
- {workspace_id}:工作空间ID,用于资源隔离。
- {job_id}:启动Spark作业响应信息中的“job_id”参数值。
- 响应示例:
{ "job_id": "1ee7d9db-90ec-xxxx-xxxx-0de936dade77", "state": "SUCCEED" }
查询Spark作业详情
调用查看Spark作业详情接口,查看作业的完整配置信息和执行结果。
- 请求示例:
GET /v2/workspaces/{workspace_id}/spark-jobs/{job_id}
- {workspace_id}:工作空间ID,用于资源隔离。
- {job_id}:启动Spark作业响应信息中的“job_id”参数值。
- 响应示例:
{ "job_id" : "1ee7d9db-90ec-xxxx-xxxx-0de936dade77", "client_token" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "name" : "spark-jar-job-example", "endpoint_name" : "spark-endpoint", "state" : "SUCCEED", "job_config" : { "type" : "spark_jar_job", "main_class" : "com.example.SparkJobDriver", "main_jar" : "obs://bucket/path/job.jar", "main_args" : [ "--input", "obs://bucket/input", "--output", "obs://bucket/output" ] }, "resource_config" : { "executor_number" : 2, "driver_resource_spec" : { "cpu" : 2000, "memory" : 4096 }, "executor_resource_spec" : { "cpu" : 2000, "memory" : 4096 } }, "create_time" : 1698776400000, "start_time" : 1698776450000, "end_time" : 1698776700000, "create_user" : { "user_id" : "user123", "user_name" : "admin" }, "log_url" : "https://obs.example.com/logs/spark-job.log" }
取消Spark作业执行
若作业执行异常需要终止,调用取消Spark作业接口取消正在执行的作业。仅支持取消处于QUEUED或RUNNING状态的作业。
- 请求示例:
POST /v2/workspaces/{workspace_id}/spark-jobs/{job_id}/cancel
- {workspace_id}:工作空间ID,用于资源隔离。
- {job_id}:启动Spark作业响应信息中的“job_id”参数值。
- 响应示例:无响应体,HTTP状态码204表示取消成功。