
# DLI Spark
#### 功能
通过DLI Spark节点执行一个预先定义的DLI Spark作业。DLI Spark可通过交互式会话（session）和批处理（batch）方式提交计算任务。通过在DLI提供的弹性资源池队列上提交作业，简化了资源管理和作业调度。
DLI Spark节点的具体使用教程，请参见[开发一个DLI Spark作业](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_0521.html)。
#### 参数
用户可参考[表1]，[表2]和[表3]配置DLI Spark节点的参数。
 表1属性参数 
| 参数          | 是否必选 | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
|:---|:---|:---|
| 节点名称        | 是    | 节点名称，可以包含中文、英文字母、数字、"_"、"-"、"/"、"\<"、"\>"等各类特殊字符，长度为1～128个字符。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| 作业名称        | 是    | 填写DLI Spark作业的名称，不能超过128个字符。默认与节点的名称一致。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| DLI队列       | 是    | 下拉选择需要使用的队列。 说明： - 当子用户在创建作业时，子用户只能选择已经被分配的队列。  - 当前由于DLI的"default"队列默认Spark组件版本较低，可能会出现无法支持建表语句执行的报错，这种情况下建议您选择自建队列运行业务。如需"default"队列支持建表语句执行，可联系DLI服务客服或技术支持人员协助解决。  - DLI的"default"队列为共享队列，仅用于用户体验，用户间可能会出现抢占资源的情况，不能保证每次都可以得到资源执行相关操作。当遇到执行时间较长或无法执行的情况，建议您在业务低峰期再次重试，或选择自建队列运行业务。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| Spark版本     | 否    | 选定DLI队列后，下拉可选择作业使用Spark组件的版本号，使用时如无特定版本要求时使用默认版本号2.3.2，有特殊使用要求时选择对应的版本即可。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| 作业特性        | 否    | 作业使用的Spark镜像类型，当前支持基础型、AI增强型和自定义的Spark镜像。 自定义镜像需要选择自定义镜像名称和对应版本。仅当DLI队列为容器化队列类型时，出现本参数。 自定义镜像是DLI的特性。用户可以依赖DLI提供的Spark或者Flink基础镜像，使用Dockerfile将作业运行需要的依赖（文件、jar包或者软件）打包到镜像中，生成自己的自定义镜像，然后将镜像发布到SWR（容器镜像服务）中，最后在此选择自己生成的镜像，运行作业。 自定义镜像可以改变Spark作业和Flink作业的容器运行环境。用户可以将一些私有能力内置到自定义镜像中，从而增强作业的功能、性能。关于自定义镜像的更多详情，请参见[自定义镜像](https://support.huaweicloud.com/usermanual-dli/dli_01_0494.html)。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| 作业运行资源      | 否    | 选择作业运行的资源规格： - 8核32G内存  - 16核64G内存  - 32核128G内存                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| 作业主类        | 是    | Spark作业的主类名称。作业的Java/Scala主类。当应用程序类型为".jar"时，主类名称不能为空。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| Spark程序资源包  | 是    | 运行spark作业依赖的jars。可以输入jar包名称，也可以输入对应jar包文件的OBS路径，格式为：obs://桶名/文件夹路径名/包名。在选择资源包之前，您需要先将Jar包及其依赖包上传至OBS桶中，并在"资源管理"页面中新建资源，具体操作请参考[新建资源](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_0519.html#dataartsstudio_01_0519__zh-cn_topic_0165312432_section6325757145320)。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| 资源类型        | 是    | 支持OBS路径和DLI程序包两种类型的资源。 - OBS路径：作业执行时，不会上传资源包文件到DLI资源管理，文件的OBS路径会作为启动作业消息体的一部分，推荐使用该方式。  - DLI程序包：作业执行前，会将资源包文件上传到DLI资源管理。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| 分组设置        | 否    | 当"资源类型"选择了"DLI程序包"时，需要设置。可选择"已有分组"，"创建新分组"或"不分组"。 将Spark程序资源包上传到指定的分组中；主Jar包和依赖包会上传到同一个分组中。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| 组名称         | 否    | 当"资源类型"选择了"DLI程序包"时，需要设置。 - 选择"已有分组"：可选择已有的分组。  - 选择"创建新分组"：可输入自定义的组名称。  - 选择"不分组"：不需要选择或输入组名称。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| 主类入口参数      | 否    | 用户自定义参数，多个参数请以Enter键分隔。 应用程序参数支持全局变量替换。例如，在"全局配置"\>"全局变量"中新增全局变量key为batch_num，可以使用{{batch_num}}，在提交作业之后进行变量替换。 说明： 请勿输入敏感信息，例如ak、sk、password、authorization等信息。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| Spark作业运行参数 | 否    | 以"key=value"的形式设置提交Spark作业的属性，多个参数以Enter键分隔。具体参数请参见[Spark Configuration](https://spark.apache.org/docs/latest/configuration.html)。 Spark参数value支持全局变量替换。例如，在"全局配置"\>"全局变量"中新增全局变量key为custom_class，可以使用"spark.sql.catalog"={{custom_class}}，在提交作业之后进行变量替换。 单击"选择模板"，可以将参数模板中定义的参数和参数值直接传入到spark jar任务中。创建模板的详细信息，请参见[配置模板](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_1282.html)。 说明： Spark作业不支持自定义设置jvm垃圾回收算法。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| Module名称    | 否    | DLI系统提供的用于执行跨源作业的依赖模块，访问各个不同的服务，选择不同的模块： - CloudTable/MRS HBase: sys.datasource.hbase  - DDS：sys.datasource.mongo  - CloudTable/MRS OpenTSDB: sys.datasource.opentsdb  - DWS: sys.datasource.dws  - RDS MySQL: sys.datasource.rds  - RDS PostGre: sys.datasource.rds  - DCS: sys.datasource.redis  - CSS: sys.datasource.css   DLI内部相关模块： - sys.res.dli-v2  - sys.res.dli  - sys.datasource.dli-inner-table   |
| 访问元数据       | 是    | 如果需要在DLI Spark作业中访问由DLI SQL作业创建的OBS表，就要打开访问元数据开关。 是否通过Spark作业访问元数据。具体请参考[使用Spark作业访问DLI元数据](https://support.huaweicloud.com/devg-dli/dli_09_0176.html)。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
   
 表2高级参数 
| 参数               | 是否必选 | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
|:---|:---|:---|
| 节点状态轮询时间（秒）      | 是    | 设置轮询时间（1\~60秒），每隔x秒查询一次节点是否执行完成。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| 节点执行的最长时间        | 是    | 设置节点执行的超时时间，如果节点配置了重试，在超时时间内未执行完成，该节点将会再次重试。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| 失败重试             | 是    | 节点执行失败后，是否重新执行节点。 - 是：重新执行节点，请配置以下参数。 - 超时重试  - 最大重试次数  - 重试间隔时间（秒）    - 否：默认值，不重新执行节点。 说明： 如果作业节点配置了重试，并且配置了超时时间，该节点执行超时后，系统支持再重试。 当节点运行超时导致的失败不会重试时，您可前往"默认项设置"修改此策略。 当"失败重试"配置为"是"才显示"超时重试"。    |
| 当前节点失败后，后续节点处理策略 | 是    | 节点执行失败后的操作： - 终止后续节点执行计划：停止后续节点的运行，当前作业实例状态显示为"失败"。  - 终止当前作业执行计划：停止当前作业运行，当前作业实例状态显示为"失败"。  - 继续执行下一节点：忽略当前节点失败，当前作业实例状态显示为"忽略失败"。  - 挂起当前作业执行计划：当前作业实例的状态为运行异常，该节点的后续节点以及依赖于当前作业的后续作业实例都会处于等待运行状态。                                                                                                                                                                                                                                                                                                                                                                                                                  |
| 是否空跑             | 否    | 如果勾选了空跑，该节点不会实际执行，将直接返回成功。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| 任务组              | 否    | 选择任务组。任务组配置好后，可以更细粒度地进行当前任务组中的作业节点的并发数控制，比如作业中包含多个节点、补数据、重跑等场景。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
   
 表3血缘关系 
| 参数    | 说明                                                                                                                   |
|:---|:---|
| **输入**                                                                                                                      ||
| 新建    | 单击"新建"，在"类型"的下拉选项中选择要新建的类型。可以选择DWS，OBS，CSS，HIVE，CUSTOM和DLI类型。                                                        |
| 确定    | 单击"确认"，保存节点输入功能的参数配置。                                                                                                |
| 取消    | 单击"取消"，取消节点输入功能的参数配置。                                                                                                |
| 编辑    | 单击![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0253079518.png)，修改节点输入功能的参数配置，修改完成后，请保存。 |
| 删除    | 单击![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0253079519.png)，删除节点输入功能的参数配置。           |
| 查看表详情 | 单击![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0253079520.png)，查看节点输入血缘关系创建数据表的详细信息。    |
| **输出**                                                                                                                      ||
| 新建    | 单击"新建"，在"类型"的下拉选项中选择要新建的类型。可以选择DWS，OBS，CSS，HIVE，CUSTOM，CloudTable和DLI类型。                                             |
| 确定    | 单击"确认"，保存节点输出功能的参数配置。                                                                                                |
| 取消    | 单击"取消"，取消节点输出功能的参数配置。                                                                                                |
| 编辑    | 单击![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0253079533.png)，修改节点输出功能的参数配置，修改完成后，请保存。 |
| 删除    | 单击![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0253079534.png)，删除节点输出功能的参数配置。           |
| 查看表详情 | 单击![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0253079536.png)，查看节点输出血缘关系创建数据表的详细信息。    |
   
