注册EMR集群至DataWorks
DataWorks支持基于EMR(E-MapReduce)计算引擎创建Hive、MR、Presto和Spark SQL等节点,实现EMR任务工作流的配置、周期性调度和元数据管理等功能,保障数据生产及管理的高效稳定。本文为您介绍如何在DataWorks注册同账号或跨账号的EMR集群。
背景信息
开源大数据开发平台E-MapReduce(简称EMR),是运行在阿里云平台上的一种大数据处理的系统解决方案。
EMR基于开源的Apache Hadoop和Apache Spark,让您可以方便地使用Hadoop和Spark生态系统中的其他周边系统分析和处理数据。EMR还可以与阿里云其他的云数据存储系统和数据库系统(例如,阿里云OSS和RDS等)进行数据传输。阿里云EMR提供了on ECS、on ACK和Serverless形态,以满足不同用户的需求。
在DataWorks运行EMR任务时可选择多种EMR组件,不同组件运行任务时的最优配置存在差异,您在配置EMR集群时请参考EMR集群配置建议,根据实际情况进行选择。
支持的集群类型
DataWorks目前支持绑定以下类型集群,在DataWorks操作前,请提前创建以下类型集群。
EMR集群类型 | EMR集群说明 | DataWorks使用说明 |
集群版本必须大于等于3.41.0或5.7.0。 | 您需要将集群注册至DataWorks,后续才可以在DataWorks上使用EMR集群。 | |
集群版本必须大于等于3.41.0或5.7.0。 | 您需要将集群注册至DataWorks,后续才可以在DataWorks上使用EMR集群。 | |
同账号绑定Hadoop集群时,版本为3.38.3或3.38.2。跨账号场景下,仅支持注册3.38.3版本和3.38.2版本,且未使用DLF管理元数据的Hadoop集群。 | 您需要将集群注册至DataWorks,后续才可以在DataWorks上使用EMR集群。详情请参见场景:注册跨账号的EMR集群。 | |
仅支持Spark、Spark SQL节点。 | 您需要将集群注册至DataWorks,后续才可以在DataWorks上使用EMR集群。 | |
EMR Serverless StarRocks是开源StarRocks在阿里云上的全托管服务。 | 您无需将集群注册至DataWorks,仅需创建对应类型的数据源,后续即在DataWorks上使用EMR集群。详情请参见DataWorks on EMR Serverless StarRocks最佳实践。 |
使用限制
任务类型:DataWorks暂不支持执行EMR的Flink任务。
任务执行:DataWorks仅支持使用独享调度资源组进行EMR任务执行。
任务治理:
仅EMR Hive、EMR Spark及EMR Spark SQL节点中SQL任务支持产出血缘关系。当集群版本为5.9.1或3.43.1及以上版本时,以上节点均支持查看表级血缘与字段级血缘。
说明对于Spark类型节点,当EMR集群版本为5.8.0和3.42.0及以上版本时,支持查看表级血缘与字段级血缘,当EMR集群版本低于5.8.0和3.42.0版本时,仅Spark 2.x支持查看表级血缘。
DataLake或自定义集群若要在DataWorks管理元数据,需先在集群侧配置EMR-HOOK。若未配置,则在DataWorks中无法实时展示元数据、生成审计日志、展示血缘关系,EMR相关治理任务将无法开展。目前仅EMR Hive、EMR Spark SQL服务支持配置EMR-HOOK,配置详情请参见配置Hive的EMR-HOOK、配置Spark SQL的EMR-HOOK。
前提条件
注意事项
若要实现DataWorks标准模式工作空间的开发环境与生产环境隔离机制,您需要为开发环境和生产环境绑定两个不同的EMR集群。且这两个集群的元数据需要使用如下存储方式:
一个EMR集群可以注册在同一个阿里云账号的多个工作空间,若当前阿里云账号的已有集群已注册至DataWorks,则该集群无法跨账号再次被注册至DataWorks。
进入EMR集群页面
进入管理中心页面。
登录DataWorks控制台,单击左侧导航栏的管理中心,在下拉框中选择对应工作空间后单击进入管理中心。
单击左侧导航栏的 ,进入集群注册页面。
注册EMR集群
在注册E-MapReduce集群页面配置集群信息。
标准模式工作空间,需分别填写开发环境和生产环境的集群信息,工作空间模式详情请参见必读:简单模式和标准模式的区别。
集群显示名称:定义集群在DataWorks的名称,名称必须唯一。
集群所属云账号:选择需要将哪个账号下的EMR集群注册至当前工作空间。
当前阿里云主账号:将当前阿里云主账号下的EMR集群注册至当前账号的DataWorks工作空间。
其他阿里云主账号:将其他阿里云主账号下的EMR集群注册至当前账号的DataWorks工作空间。
请根据选择的账号类型,参照下文配置其他参数。
集群所属云账号:当前账号
当集群所属云账号选择当前阿里云主账号时,您还需要配置如下参数:
配置项 | 说明 |
集群类型 | 选择需要绑定的EMR集群类型,目前DataWorks可注册的集群类型存在限制,详情请参见使用限制。 |
集群 | 选择当前账号下需要注册至DataWorks的EMR集群。 |
默认访问身份 | 定义在当前工作空间下,使用什么身份访问该EMR集群。
说明 当默认访问身份选择任务责任人、阿里云主账号或阿里云子账号所映射的集群账号时,您可以参考设置集群身份映射手动配置DataWorks租户成员与EMR集群指定账号的映射关系。通过该映射的集群账号在DataWorks执行EMR任务,未配置DataWorks租户成员与集群账号映射的情况下,DataWorks处理策略如下:
|
配置文件 | 当集群类型选择HADOOP时,您可以前往EMR控制台获取配置文件。详情请参见导出和导入服务配置。导出后请根据产品界面要上传的配置文件,修改文件名称。 此外,您还可以登录EMR集群,通过以下路径获取相关配置文件。
|
集群所属云账号:其他阿里云主账号
当集群所属云账号选择其他阿里云主账号时,您还需要配置如下参数:
配置项 | 说明 |
对方阿里云主账号UID | 需添加的EMR集群所属的云账号UID。 |
对方RAM角色 | 访问该EMR集群的RAM角色。该角色需满足如下条件:
说明 跨账号注册EMR集群的相关操作,详情请参见场景:注册跨账号的EMR集群。 |
对方EMR集群类型 | 选择需要绑定的EMR集群类型。目前跨账号注册EMR集群场景下仅支持绑定EMR on ECS:Hadoop类型的集群。 |
对方EMR集群 | 选择该账号下需要注册至DataWorks的EMR集群。 |
配置文件 | 请在产品界面按照提示配置各项配置文件。获取配置文件详情请参见导出和导入服务配置。导出后请根据产品界面要上传的配置文件,修改文件名称。 此外,您还可以登录EMR集群,通过以下路径获取相关配置文件。
|
默认访问身份 | 定义在当前工作空间下,用什么身份访问该EMR集群。
说明 当默认访问身份选择任务责任人、阿里云主账号或阿里云子账号所映射的集群账号时,您可以参考设置集群身份映射手动配置DataWorks租户成员与EMR集群指定账号的映射关系。通过该映射的集群账号在DataWorks执行EMR任务,未配置DataWorks租户成员与集群账号映射的情况下,DataWorks处理策略如下:
|
资源组初始化
初次绑定集群、集群服务配置变更或组件版本升级(例如:修改core-site.xml)请初始化资源组,确保资源组可正常访问EMR,资源组当前环境配置可正常执行EMR任务。在开源集群页面,找到已注册的EMR集群页签,单击右上角的资源组初始化。对需要使用的资源组进行初始化。
DataWorks仅支持使用独享调度资源组运行EMR任务,所以此处仅支持选择独享调度资源组进行资源组初始化操作。
后续步骤
数据开发:您可参考通用开发流程配置相关组件环境。
设置集群身份映射:当EMR集群默认访问身份非hadoop账号时,您需要配置集群身份映射,控制操作DataWorks的RAM用户在DataWorks仅可访问其有权限的资源,实现权限管控。
设置全局YARN资源队列:您可通过YARN资源队列映射,指定各模块使用的YARN队列,并支持设置是否覆盖各模块的配置。
设置全局Spark参数:您可参考Spark官方文档自定义全局Spark参数,并支持设置当存在同名参数时,空间级Spark参数配置是否覆盖各模块的配置。