MaxCompute Spark作业可通过Local模式、Cluster模式执行,此外,您也可在DataWorks中运行MaxCompute Spark离线作业(Cluster模式),以便与其它类型执行节点集成和调度。本文为您介绍如何通过DataWorks实现MaxCompute Spark作业的配置与调度。
前提条件
- 工作空间已绑定引擎:在工作空间配置页面绑定MaxCompute引擎后,数据开发(DataStudio)页面才会显示MaxCompute目录。详情请参见绑定MaxCompute引擎。
- 已创建业务流程:DataWorks使用业务流程存放创建的节点。因此,创建节点前需先创建业务流程。详情请参见创建业务流程。
背景信息
MaxCompute Spark是MaxCompute提供的兼容开源Spark的计算服务。它在统一的计算资源和数据集权限体系之上,提供Spark计算框架,支持您以熟悉的开发使用方式提交运行Spark作业,满足更丰富的数据处理分析需求。在DataWorks中,您可通过ODPS Spark节点实现MaxCompute Spark任务的调度运行,以及与其他作业的集成操作。
MaxCompute Spark支持使用Java、Scala和Python语言进行开发,并通过Local、Cluster模式运行任务,在DataWorks中运行MaxCompute Spark离线作业时采用Cluster模式执行。更多关于MaxCompute Spark运行模式的介绍,详情请参见运行模式。
开发MaxCompute Spark任务
ODPS Spark节点支持使用Java/Scala
和Python
语言运行MaxCompute Spark离线作业,不同语言开发步骤及配置界面存在差异,您可根据业务需要选择使用。
开发语言:Java/Scala
在ODPS Spark节点执行Java或Scala语言类型代码前,您需先在本地开发好MaxCompute Spark作业代码,再通过DataWorks上传为MaxCompute的资源。步骤如下:- 准备开发环境。
根据所使用系统类型,准备运行MaxCompute Spark任务的开发环境,详情请参见搭建Linux开发环境、搭建Windows开发环境。
- 开发Java/Scala代码。
在ODPS Spark节点执行Java或Scala语言类型代码前,需先在本地或已有环境开发好MaxCompute Spark代码,建议使用MaxCompute Spark提供的项目示例工程模板进行开发。
- 打包代码并上传至DataWorks。
代码开发完成后,需将其打包,并通过DataWorks上传为MaxCompute资源,详情请参见创建并使用MaxCompute资源。
开发语言:Python(使用默认Python环境实现)
开发语言:Python(使用自定义Python环境实现)
若平台提供的默认Python环境无法满足您的业务需求,则可根据如下步骤自定义Python环境,执行MaxCompute Spark任务。- 本地准备Python环境。
您可参考PySpark Python版本和依赖支持,根据业务需要配置可用的Python环境。
- 打包环境并上传至DataWorks。
将Python环境压缩为一个Zip包,并通过DataWorks上传为MaxCompute资源,作为后续运行MaxCompute Spark任务的执行环境。详情请参见创建并使用MaxCompute资源。
创建ODPS Spark节点并运行Spark任务
步骤一:进入ODPS Spark节点创建入口
进入数据开发页面。
登录DataWorks控制台。
在左侧导航栏,单击工作空间列表。
选择工作空间所在地域后,单击相应工作空间后的数据开发。
- 进入节点创建入口。在数据开发页面基于具体业务流程创建节点,并根据界面指引配置节点的名称、路径等基本信息。创建入口及步骤如下图。
步骤二:配置ODPS Spark节点参数
main
。main
运行结束(即状态为Success
或Fail
)时,对应的Spark作业便会结束。此外,spark-defaults.conf
中的配置需逐条加到ODPS Spark节点配置项中。例如,Executor
的数量、内存大小和spark.hadoop.odps.runtime.end.point
的配置。spark-defaults.conf
文件,而是需将spark-defaults.conf
文件中的配置都逐条加到ODPS Spark节点的配置项中。参数 | 描述 | 对应的spark-submit命令 |
spark版本 | 包括Spark1.x、Spark2.x、Spark3.x版本。 | — |
语言 | 此处选择Java/Scala或Python。请根据实际MaxCompute Spark开发语言进行选择。 | — |
选择主资源 | 指定任务所使用的主JAR资源文件或主Python资源。 此处的资源文件需提前上传至DataWorks并已提交,详情请参见创建并使用MaxCompute资源。 | app jar or Python file |
配置项 | 指定提交作业时的配置项。其中:
| --conf PROP=VALUE |
Main Class | 配置主类名称。当开发语言为Java/Scala 时,需要配置该参数。 | --class CLASS_NAME |
参数 | 您可根据需要添加参数,多个参数之间用空格分隔。DataWorks支持使用调度参数,此处参数配置格式为${变量名}。配置完成后需在右侧导航栏 处给变量赋值。 说明 调度参数支持的赋值格式请参见调度参数支持的格式。 | [app arguments] |
选择其他资源 | 您可根据需要,选择使用如下资源。
| 不同资源分别对应如下命令:
|
步骤三:提交并发布节点
ODPS Spark节点需要发布生产环境后,才会自动调度运行。
- 在节点编辑页面,单击右侧的调度配置,配置节点的调度属性,详情请参见任务调度属性配置概述。
- 保存并提交节点。重要 您需要设置节点的重跑属性和依赖的上游节点,才可以提交节点。
- 单击工具栏中的图标,保存节点。
- 单击工具栏中的图标,在提交新版本对话框输入变更描述,单击确认,提交节点。节点提交后,将按照配置调度执行。
如果您使用的是标准模式的工作空间,提交成功后,需单击右上方的发布,发布节点,具体操作请参见发布任务。