本文主要介绍如何快速配置RAM子账号权限并提交DLA Spark作业。

前提条件

背景信息

目前DLA Spark的权限分为三部分。
  • DLA控制接口的访问权限:用于控制RAM子账号是否允许登录DLA控制台,是否允许RAM子账号调用Spark作业管理相关API。具体操作请参见操作步骤1
  • DLA表的访问权限:DLA表的访问权限默认通过DLA账号进行权限管理,Spark作业通过RAM子账号提交。Spark作业如果要访问表,需要将DLA账号跟RAM账号绑定。具体操作请参见操作步骤2
  • Spark作业所依赖其他资源的访问权限:用于控制RAM子账号所提交Spark作业所依赖的JAR包、非DLA表的其他数据源,比如直接访问OSS目录等。具体操作请参见操作步骤3

操作步骤

  1. 登录RAM控制台,为RAM子账号授予DLA访问权限。具体请参见为RAM用户授权
    当前RAM系统中已经预设了三种DLA授权策略,在系统策略输入框中输入DLA就可以快速选择。
    权限策略的说明如下。
    权限名称 权限说明
    AliyunDLAFullAccess 用于数据湖分析的管理员权限,拥有数据湖分析的所有权限,可以执行新建集群、删除集群、提交作业等操作,拥有授权给DLA服务的角色的使用权。
    AliyunDLAReadOnlyAccess 用于数据湖分析的访客权限,拥有数据湖分析的只读权限,可以查看集群状态、作业状态等信息。无法修改集群的状态,也无法提交作业。
    AliyunDLADeveloperAccess 用于数据湖分析的开发者权限,可以查看集群、作业的状态,提交和执行作业,无法新建和删除集群,拥有授权给DLA账户的角色的使用权。
  2. DLA子账号绑定RAM子账号。具体请参见DLA子账号绑定RAM账号
  3. 单击快速授权链接为RAM子账户快速授予资源访问权限。
    该操作步骤自动帮您创建AliyunDLASparkProcessingDataRole角色,该角色包含用户账号下所有OSS Bucket的读写权限。
说明 上述3个步骤均是必选的,否则作业会报权限错误。

验证RAM子账号权限配置

当您完成以上操作后,即可使用RAM子账号登录Data Lake Analytics管理控制台Serverless Spark > 作业管理页签下,提交Spark作业验证RAM子账号权限配置是否正确。具体请参见创建和执行Spark作业作业配置指南配置示例如下。
{
    "name": "SparkPi",
    "file": "local:///tmp/spark-examples.jar",
    "className": "org.apache.spark.examples.SparkPi",
    "args": [
        "100"
    ],
    "conf": {
        "spark.driver.resourceSpec": "medium",
        "spark.executor.instances": 1,
        "spark.executor.resourceSpec": "medium"
    }
}
说明 如果您在conf中没有填写spark.dla.roleArn配置信息时,系统会默认使用AliyunDLASparkProcessingDataRole,您也可以自定义roleArn。具体请参见细粒度配置RAM子账号权限