通过API方式连接Spark端点并提交作业
在AI DataLake控制台上创建Spark端点后,即可向该端点提交Spark作业,利用端点的计算能力处理数据。目前支持通过API方式提交SQL作业、Python作业和JAR作业。
前提条件
- 已获取工作空间ID 。
登录AI DataLake管理控制台,在“工作空间管理”页面找到目标工作空间ID。
- 已获取Spark端点名称(endpoint_name)。
登录AI DataLake管理控制台,在“引擎端点”下的“批处理引擎Spark”页面找到目标Spark端点名称。
- 已根据作业类型编写对应的作业文件,并将编写好的文件上传至OBS桶,记录其OBS路径。
注意事项
对接LakeFormation场景下,IAM账号名不能包含中划线(-),否则Spark作业提交将报错失败。
提交SparkSQL作业
使用Postman等工具,调用执行SparkSql作业 - RunSparkSqlAPI接口提交SparkSQL作业,代码示例如下。
POST /v2/workspaces/{workspace_id}/spark-sqls
{
"endpoint_name": "spark-endpoint-01",
"catalog_context": {
"catalog_name": "hive_catalog",
"database_name": "default"
},
"statement": "SELECT * FROM table_name LIMIT 100",
"timeout": {
"queued_timeout": 180,
"running_timeout": 720
}
} | 参数 | 说明 | 示例 |
|---|---|---|
| endpoint_name | 端点名称 | spark-endpoint-01 |
| catalog_name | 数据目录名称 | hive_catalog |
| database_name | 数据库名称 | default |
| statement | SQL查询语句 | SELECT * FROM table_name LIMIT 100 |
| queued_timeout | 排队超时 | 180 |
| running_timeout | 运行超时 | 720 |
提交Spark Jar作业
POST /v2/workspaces/{workspace_id}/spark-jobs
{
"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"
]
},
"image": {
"image_id": "dd877a59-5cbd-44c5-b8a7-dc464cca****",
"image_version_id": "01ae8ee6-af8a-48a8-895b-8d4a70bf****"
},
"resource_config": {
"executor_number": 2,
"driver_resource_spec": {
"cpu": 2000,
"memory": 4096
},
"executor_resource_spec": {
"cpu": 2000,
"memory": 4096
}
}
} | 参数 | 说明 | 示例 |
|---|---|---|
| name | 作业名称 | spark-jar-job-example |
| endpoint_name | 端点名称 | spark-endpoint |
| type | 作业类型 | spark_jar_job |
| main_class | 主类名称,用于指定Spark Jar作业的入口类。 | com.example.SparkJobDriver |
| main_jar | 主Jar包路径 | obs://bucket/path/job.jar |
| main_args | 入口类参数 | "--input", "obs://bucket/input", "--output", "obs://bucket/output" |
| image_id | 镜像ID,请通过调用查看自定义镜像列表接口查询获取。 | dd877a59-5cbd-44c5-b8a7-dc464cca**** |
| image_version_id | 说明: 如果端点的资源使用模式为混合模式和按需弹性,且当前所选镜像版本已创建镜像快照,选择该版本镜像时会自动关联对应的镜像快照,端点启动时自动使用快照创建镜像资源,无需额外操作。创建镜像快照的具体操作,请参见镜像加速。 镜像版本。查看镜像版本的具体操作如下:
| 20e48735-f273-413c-a0f5-4cd4544f**** |
| executor_number | 执行器数量 | 2 |
| driver_resource_spec | Driver资源 | 2核4GB |
| executor_resource_spec | Executor资源 | 2核4GB |
提交Spark Python作业
使用Postman等工具,调用启动Spark作业 - RunSparkJobAPI接口提交Spark Python作业,代码示例如下。
POST /v2/workspaces/{workspace_id}/spark-jobs
{
"name": "python-job-example",
"endpoint_name": "spark-endpoint",
"job_config": {
"type": "spark_python_job",
"main_python_file": "obs://bucket/path/job.py",
"main_args": [
"--input-path",
"obs://bucket/input"
]
},
"image": {
"image_id": "dd877a59-5cbd-44c5-b8a7-dc464cca****",
"image_version_id": "01ae8ee6-af8a-48a8-895b-8d4a70bf****"
},
"resource_config": {
"executor_number": 2,
"driver_resource_spec": {
"cpu": 2000,
"memory": 4096
},
"executor_resource_spec": {
"cpu": 2000,
"memory": 4096
}
}
} | 参数 | 说明 | 示例 |
|---|---|---|
| name | 作业名称 | python-job-example |
| endpoint_name | 端点名称 | spark-endpoint |
| type | 作业类型 | spark_python_job |
| main_python_file | Python路径 | obs://bucket/path/job.py |
| --input-path | 入口参数 | obs://bucket/input |
| image_id | 镜像ID,请通过调用查看自定义镜像列表接口查询获取。 | dd877a59-5cbd-44c5-b8a7-dc464cca**** |
| image_version_id | 说明: 如果端点的资源使用模式为混合模式和按需弹性,且当前所选镜像版本已创建镜像快照,选择该版本镜像时会自动关联对应的镜像快照,端点启动时自动使用快照创建镜像资源,无需额外操作。创建镜像快照的具体操作,请参见镜像加速。 镜像版本。查看镜像版本的具体操作如下:
| 20e48735-f273-413c-a0f5-4cd4544f**** |
| executor_number | 执行器数量 | 2 |
| driver_resource_spec | Driver资源 | 2核4GB |
| executor_resource_spec | Executor资源 | 2核4GB |