场景:注册跨账号的EMR集群
支持您跨阿里云账号绑定EMR集群。该操作必须通过RAM角色访问的方式执行。本文为您介绍,如何使用RAM角色访问方式,让阿里云账号A可以在DataWorks中绑定阿里云账号B的EMR集群,实现跨账号访问EMR数据。
前提条件
注意事项
-
仅支持跨账号绑定未使用DLF管理元数据的Hadoop集群。
-
不支持Kerberos认证。
-
Spark仅支持SQL任务的表血缘,不支持字段血缘。
账号B侧:创建RAM角色并允许账号A访问
账号B拥有访问云资源EMR的RAM角色,账号B允许账号A来扮演该角色,让账号A能够访问账号B下的云资源EMR。
-
创建RAM角色。
使用阿里云账号B登录RAM控制台,创建RAM角色并添加账号A为该角色信任的云账号,后续可使用账号A扮演该角色访问相关被授权的资源。创建角色,详情请参见创建可信实体为阿里云账号的RAM角色。
角色关键配置示例如下:
-
角色名称为:EMRRole。
-
信任的云账号选择其他账号:此处填写的是账号A的账号ID。您可使用目标账号(账号A)登录控制台,鼠标悬停至顶部菜单栏的用户头像,获取账号ID。
配置完成后,账号A后续即可扮演EMRRole角色,访问相关被授权的资源。
-
-
修改角色信任策略。
您需进入EMRRole角色详情页,修改角色信任策略,授权账号A可访问当前账号B的EMR集群。修改角色的信任策略,详情请参见修改RAM角色的信任策略。策略内容如下。
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "san******@emr.dataworks.aliyuncs.com" ] } } ], "Version": "1" }说明san******@emr.dataworks.aliyuncs.com:需要授权的主账户A的uid。 -
为EMRRole新增AliyunDataWorksAccessingEMRReadOnlyPolicy权限。
在RAM控制台,进入EMRRole角色详情页,单击权限管理页签,单击新增授权,搜索并选择AliyunDataWorksAccessingEMRReadOnlyPolicy策略,单击确定完成授权。
账号A侧:注册账号B的集群
在本步骤,您将在账号A的DataWorks空间绑定账号B的emr集群。实现集群的跨账号绑定。因此,执行本步骤前,您需提前从账号B处获取UID。
进入管理中心页面。
登录DataWorks控制台,切换至目标地域后,单击左侧导航栏的,在下拉框中选择对应工作空间后单击进入管理中心。
-
单击左侧导航栏的计算资源,进入计算资源页面。
-
配置集群信息。
-
配置基本信息。
根据界面提示,配置如下信息。标准模式工作空间,需分别为开发环境和生产环境绑定计算资源。工作空间模式,详情请参见工作空间模式区别。
集群所属云账号选择其他阿里云主账号,并上传7个配置文件(
core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml、hive-site.xml、spark-defaults.conf、spark-env.sh),设置默认访问身份和传递Proxy User信息,填写计算资源实例名和描述后单击确认。关键参数配置如下:
-
对方账号的UID:跨账号绑定集群的账号UID。即账号B的UID,需从账号B处获取。
-
对方RAM角色:允许对方账号访问本账号资源的角色。即本文已创建的角色EMRRole。
-
对方EMR集群:选择需要绑定至DataWorks的EMR集群,此处仅可选择版本为3.38.3或3.38.2且未使用DLF管理元数据的Hadoop集群。
更多绑定集群的配置详情,请参见新版数据开发:绑定EMR计算资源。
-
-
配置资源组初始化。
初次绑定EMR计算资源、集群服务配置变更或组件版本升级(例如:修改core-site.xml)请初始化资源组,确保通过配置网络连通,资源组可正常访问EMR集群。
重要-
若初始化失败,请结合连通性诊断工具辅助排查原因。
-
资源组初始化可能导致正在运行的任务失败。非必要场景(例如,集群配置变更,需要立即重新初始化资源组,否则会导致大量任务运行失败),建议在业务低峰期对资源组执行初始化操作。
-
-
后续步骤
集群创建后,您可执行如下操作: