Spark 作业 API 语法、参数和返回码

您通常使用 cURL 命令提交 Spark 作业。

Spark 作业 cURL 命令语法为:

curl -k -X POST <V3_JOBS_API_ENDPOINT> -H "Authorization: Bearer <ACCESS_TOKEN>" -d @input.json

Spark 作业 cURL 选项:

提示:

Spark 作业 API 参数

可以在 Spark 作业 API 中使用的参数如下所示:

表 1. Spark 作业 API 的参数
名称 子属性 必选/可选 类型 描述
应用程序详细信息 必需 对象 指定 Spark 应用程序详细信息
application 必需 String 指定 Spark 应用程序文件,即 Python, R 或 scala 作业文件的文件路径
application_arguments 可选 字符串 [] 指定应用程序参数
conf 可选 键值 JSON 对象 指定覆盖预定义值的 Spark 配置值。 请参阅 缺省 Spark 配置参数和环境变量 部分,以获取 Spark 服务定义的缺省配置参数。 请参阅 Apache Spark 配置 ,以了解 Apache Spark支持的配置参数。
env 可选 键值 JSON 对象 指定作业所需的 Spark 环境变量。 请参阅 缺省 Spark 配置参数和环境变量 部分,以了解 Spark 服务定义的缺省环境变量。 请参阅 Apache Spark 环境变量 ,以了解 Apache Spark支持的环境变量。
class 可选 String 指定 Scala 应用程序的入口点。
executor-memory 可选 String 指定每个执行程序的内存,例如 1000M 或 2G。 缺省值为 1G。
executor-cores 可选 整数 以独立方式指定工作程序上每个执行程序或所有可用核心的核心数。 缺省值为 1。 最大值为 5 个 CPU。
num-executors 可选 整数 指定要启动的执行程序数。 缺省值为 1。
驱动程序核心 可选 整数 指定驱动程序仅在集群方式下使用的核心数。 缺省值为 1。 最大值为 5 个 CPU。
驱动程序-内存 可选 String 指定驱动程序的内存,例如 1000M 或 2G。 缺省值为 1024M。
driver-java-options 可选 String 指定要传递到驱动程序的额外 Java 选项
驱动程序库路径 可选 String 指定要传递到驱动程序的额外库路径条目
驱动程序类路径 可选 String 指定要传递给驱动程序的额外类路径条目。 请注意,随 --jars 添加的 JAR 会自动包含在类路径中。
JAR 可选 String 指定要包含在驱动程序和执行程序类路径上的 JAR 的逗号分隔列表
可选 String 指定要包含在驱动程序和执行程序类路径上的 JAR 的 Maven 坐标的逗号分隔列表。 搜索本地 Maven 存储库,然后搜索 Maven 中央存储库,最后搜索 --repositories提供的任何其他远程存储库。 坐标的格式应为 groupId:artifactId:version
排除-包 可选 String 指定在解析 --packages 中提供的依赖关系时要排除的 groupId:artifactId 的逗号分隔列表,以避免依赖关系冲突
存储库 可选 String 指定要搜索 --packages 提供的 Maven 坐标的其他远程存储库的逗号分隔列表
py 文件 可选 String 指定要放置在 Python 应用程序的 PYTHONPATH 上的 .zip.egg.py 文件的逗号分隔列表
template_id 可选 String 指定 Spark 版本和预安装的系统库。 对于 Spark 3.0 ,缺省值为 spark-3.0.0-jaas-v2-cp4d-template 。 仅当您位于 Cloud Pak for Data V4.0.7 之前的版本上时,才能使用 Spark 2.4 模板 spark-2.4.0-jaas-v2-cp4d-template
volumes 可选 对象列表 指定要安装的除 Spark 实例卷以外的卷。 如果在应用程序有效内容中添加了卷,那么有效内容中的 conf 部分是必需的。
名称 必需 String 指定卷的名称
源子路径 可选 String 指定要安装的卷中的源路径。 源路径必须是相对路径。
安装路径 必需 String 指定要安装卷的位置。 请注意,存在一些禁止使用的安装路径,当您尝试输入这些路径时,将限制您使用这些路径,因为这些路径可能会损害运行时。

响应码

Spark 作业 API 返回以下响应代码:

Spark 作业 API 响应代码
返回码 返回码的含义 描述
201 已创建作业 提交 Spark 作业成功。
作业响应: {"application_id":"<job_id>", "state":"<job_state>", "start_time": "<start_time>", "spark_application_id": "<spark_app_id>"}
400 请求错误 当有效内容不正确时,例如,如果有效内容格式不正确或缺少参数,就会返回此代码。
404 找不到 当针对不存在的实例标识提交 Spark 应用程序时,将返回此值。
500 内部服务器错误 如果服务器未响应您要求其执行的操作,那么将返回此消息。 请再次尝试提交该作业。
503 服务不可用 资源不足时,就会返回此代码。
可能的响应: Could not complete the request. Reason - FailedScheduling. Detailed error - 0/6 nodes are available: 3 Insufficient cpu, 3 node(s) had taints that the pod didn't tolerate.

缺省 Spark 配置参数和环境变量

下表显示了 Analytics Engine Powered by Apache Spark 中常用的 Spark 配置参数和环境变量及其缺省值。

下表列出了 Spark 配置参数及其缺省值:

缺省 Spark 配置参数
Spark 配置 缺省值
spark.eventLog.enabled true
spark.driver.extraClassPath /home/spark/space/assets/data_asset/*:/home/spark/user_home/dbdrivers/*:/cc-home/_global_/dbdrivers/*:/home/spark/shared/user-libs/spark2/*:/home/spark/user_home/dbdrivers/*:/home/spark/shared/user-libs/common/*:/home/spark/shared/user-libs/connectors/*:/opt/ibm/connectors/parquet-encryption/*:/opt/ibm/third-party/libs/spark2/*:/opt/ibm/third-party/libs/common/*:/opt/ibm/third-party/libs/connectors/*:/opt/ibm/spark/external-jars/*
spark.executor.extraClassPath /home/spark/space/assets/data_asset/*:/home/spark/user_home/dbdrivers/*:/cc-home/_global_/dbdrivers/*:/home/spark/shared/user-libs/spark2/*:/home/spark/user_home/dbdrivers/*:/home/spark/shared/user-libs/common/*:/home/spark/shared/user-libs/connectors/*:/opt/ibm/connectors/parquet-encryption/*:/opt/ibm/third-party/libs/spark2/*:/opt/ibm/third-party/libs/common/*:/opt/ibm/third-party/libs/connectors/*:/opt/ibm/spark/external-jars/*
spark.master.ui.port 8080
spark.worker.ui.port 8081
spark.ui.port 4040
spark.history.ui.port 18080
spark.ui.enabled true
spark.ui.killEnabled FALSE
spark.eventLog.dir file:///home/spark/spark-events
spark.ui.reverseProxy true
spark.ui.showConsoleProgress true
spark.shuffle.service.port 7337
spark.r.command /opt/ibm/conda/R/bin/Rscript
spark.hadoop.fs.s3a.fast.upload true
spark.hadoop.fs.s3a.multipart.size 33554432
spark.hadoop.fs.stocator.scheme.list cos(罗马生菜)
spark.hadoop.fs.stocator.cos.scheme cos(罗马生菜)
spark.hadoop.fs.stocator.glob.bracket.support true
spark.hadoop.fs.stocator.cos.impl com.ibm.stocator.fs.cos.COSAPIClient
spark.hadoop.fs.cos.impl com.ibm.stocator.fs.ObjectStoreFileSystem
spark.hadoop.fs.s3a.impl org.apache.hadoop.fs.s3a.S3AFileSystem
spark.authenticate FALSE
spark.network.crypto.enabled FALSE
spark.network.crypto.keyLength 256

下表列出了环境变量及其缺省值:

缺省 Spark 环境变量
环境变量 缺省值
SPARK_DIST_CLASSPATH /home/spark/space/assets/data_asset/*:/home/spark/user_home/dbdrivers/*:/cc-home/_global_/dbdrivers/*:/opt/ibm/connectors/idax/*:/opt/ibm/connectors/cloudant/*:/opt/ibm/connectors/db2/*:/opt/ibm/connectors/others-db-drivers/*:/opt/ibm/connectors/wdp-connector-driver/*:/opt/ibm/connectors/wdp-connector-jdbc-library/*:/opt/ibm/connectors/stocator/*:/opt/ibm/connectors/s3/*:/opt/ibm/image-libs/common/*:/opt/ibm/image-libs/spark2/*:/opt/ibm/third-party/libs/batch/*:/opt/ibm/spark/external-jars/*
SPARK_LOCAL_DIRS /tmp/spark/scratch
SPARK_MASTER_WEBUI_PORT 8080
SPARK_MASTER_PORT 7077
SPARK_WORKER_WEBUI_PORT 8081
CLASSPATH /home/spark/user_home/dbdrivers/*:/opt/ibm/connectors/idax/*:/opt/ibm/connectors/cloudant/*:/opt/ibm/connectors/db2/*:/opt/ibm/connectors/others-db-drivers/*:/opt/ibm/connectors/wdp-connector-driver/*:/opt/ibm/connectors/wdp-connector-jdbc-library/*:/opt/ibm/connectors/stocator/*:/opt/ibm/connectors/s3/*:/opt/ibm/image-libs/common/*:/opt/ibm/image-libs/spark2/*:/opt/ibm/third-party/libs/batch/*
LD_LIBRARY_PATH /opt/ibm/connectors/dsdriver/dsdriver/lib:/opt/ibm/connectors/others-db-drivers/oracle/lib:/opt/ibm/jdk/jre/lib/architecture/server:/opt/ibm/jdk/jre/lib/architecture/:/usr/local/lib:/lib64
运行时间-PYTHON_ENV python37
PYTHONPATH /home/spark/space/assets/data_asset:/home/spark/user_home/python-3:/cc-home/_global_/python-3:/home/spark/shared/user-libs/python:/home/spark/shared/conda/envs/python/lib/python/site-packages:/opt/ibm/conda/miniconda/lib/python/site-packages:/opt/ibm/third-party/libs/python3:/opt/ibm/image-libs/python3:/opt/ibm/image-libs/spark2/xskipper-core.jar:/opt/ibm/image-libs/spark2/spark-extensions.jar:/opt/ibm/image-libs/spark2/metaindexmanager.jar:/opt/ibm/image-libs/spark2/stmetaindexplugin.jar:/opt/ibm/spark/python:/opt/ibm/spark/python/lib/py4j-0.10.7-src.zip
R_LIBS_USER /home/spark/space/assets/data_asset:/home/spark/shared/user-libs/R:/opt/ibm/third-party/libs/R:/opt/ibm/conda/R/lib64/R/library/:/opt/ibm/spark/R/lib:/opt/ibm/image-libs/R

父主题: 提交 Spark 作业