文档

注册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使用说明

DataLake集群(新版数据湖):EMR on ECS

集群版本必须大于等于3.41.0或5.7.0。

您需要将集群注册至DataWorks,后续才可以在DataWorks上使用EMR集群。

Custom集群(自定义集群):EMR on ECS

集群版本必须大于等于3.41.0或5.7.0。

您需要将集群注册至DataWorks,后续才可以在DataWorks上使用EMR集群。

Hadoop集群(数据湖):EMR on ECS

同账号绑定Hadoop集群时,版本为3.38.3或3.38.2。跨账号场景下,仅支持注册未使用DLF管理元数据的Hadoop集群。

您需要将集群注册至DataWorks,后续才可以在DataWorks上使用EMR集群。详情请参见场景:注册跨账号的EMR集群

Spark集群:EMR on ACK

仅支持Spark、Spark SQL节点。

您需要将集群注册至DataWorks,后续才可以在DataWorks上使用EMR集群。

EMR Serverless StarRocks

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

前提条件

  • 已开通如下权限。

    仅拥有以下身份的RAM用户或RAM角色,可注册EMR集群,操作详情请参见为RAM用户授权

    • 阿里云主账号。

    • 同时具有DataWorks空间管理员角色、AliyunEMRFullAccess策略的RAM子账号、RAM角色。

    • 同时具有AliyunDataWorksFullAccess、AliyunEMRFullAccess策略的RAM子账号、RAM角色。

  • 已购买对应类型EMR集群。

    DataWorks支持注册的集群类型,详情请参见使用限制

注意事项

  • 若要实现DataWorks标准模式工作空间的开发环境与生产环境隔离机制,您需要为开发环境和生产环境绑定两个不同的EMR集群。且这两个集群的元数据需要使用如下存储方式:

    • 方式一(数据湖方案推荐):存储在数据湖构建DLF(Data Lake Formation)的两个不同数据目录Catalog。详情请参见DLF统一元数据

    • 方式二:存储在阿里云关系型数据库RDS(Relational Database Service)的两个不同数据库Database。详情请参见配置自建RDS

  • 一个EMR集群可以注册在同一个阿里云账号的多个工作空间,若当前阿里云账号的已有集群已注册至DataWorks,则该集群无法跨账号再次被注册至DataWorks。

步骤一:进入EMR集群页面

  1. 进入管理中心页面。

    登录DataWorks控制台,单击左侧导航栏的管理中心,在下拉框中选择对应工作空间后单击进入管理中心

  2. 单击左侧导航栏的开源集群 > 注册集群 > E-MapReduce ,进入集群注册页面。

步骤二:注册EMR集群

注册E-MapReduce集群页面配置集群信息。

说明

标准模式工作空间,需分别填写开发环境和生产环境的集群信息,工作空间模式详情请参见必读:简单模式和标准模式的区别

  • 集群显示名称:定义集群在DataWorks的名称,名称必须唯一。

  • 集群所属云账号:选择需要将哪个账号下的EMR集群注册至当前工作空间。

    • 当前阿里云主账号:将当前阿里云主账号下的EMR集群注册至当前账号的DataWorks工作空间。

    • 其他阿里云主账号:将其他阿里云主账号下的EMR集群注册至当前账号的DataWorks工作空间。

请根据选择的账号类型,参照下文配置其他参数

集群所属云账号:当前账号

当集群所属云账号选择当前阿里云主账号时,您还需要配置如下参数:

配置项

说明

集群类型

选择需要绑定的EMR集群类型,目前DataWorks可注册的集群类型存在限制,详情请参见使用限制

集群

选择当前账号下需要注册至DataWorks的EMR集群。

默认访问身份

定义在当前工作空间下,使用什么身份访问该EMR集群。

  • 开发环境:可选择统一使用集群账号:hadoop,或任务责任人所映射的集群账号。

  • 生产环境:可选择统一使用集群账号:hadoop、任务责任人、阿里云主账号或阿里云子账号所映射的集群账号。

说明

当默认访问身份选择任务责任人、阿里云主账号或阿里云子账号所映射的集群账号时,您可以参考设置集群身份映射手动配置DataWorks租户成员与EMR集群指定账号的映射关系。通过该映射的集群账号在DataWorks执行EMR任务,未配置DataWorks租户成员与集群账号映射的情况下,DataWorks处理策略如下:

  • 若使用RAM用户(子账号)执行任务:我们将默认按照与当前操作人同名的EMR集群系统账号执行任务。若集群开启LDAP或者Kerberos认证,任务执行将失败。

  • 若使用阿里云主账号执行任务:DataWorks任务执行将报错。

配置文件

当集群类型选择HADOOP时,您可以前往EMR控制台获取配置文件。详情请参见导出和导入服务配置。导出后请根据产品界面要上传的配置文件,修改文件名称。

image.png

此外,您还可以登录EMR集群,通过以下路径获取相关配置文件。

/etc/ecm/hadoop-conf/core-site.xml
/etc/ecm/hadoop-conf/hdfs-site.xml
/etc/ecm/hadoop-conf/mapred-site.xml
/etc/ecm/hadoop-conf/yarn-site.xml
/etc/ecm/hive-conf/hive-site.xml
/etc/ecm/spark-conf/spark-defaults.conf
/etc/ecm/spark-conf/spark-env.sh

集群所属云账号:其他阿里云主账号

当集群所属云账号选择其他阿里云主账号时,您还需要配置如下参数:

配置项

说明

对方阿里云主账号UID

需添加的EMR集群所属的云账号UID。

对方RAM角色

访问该EMR集群的RAM角色。该角色需满足如下条件:

  • 对方阿里云主账号中已创建RAM角色。

  • 对方阿里云主账号的RAM角色已授权访问当前账号的DataWorks服务。

说明

跨账号注册EMR集群的相关操作,详情请参见场景:注册跨账号的EMR集群

对方EMR集群类型

选择需要绑定的EMR集群类型。目前跨账号注册EMR集群场景下仅支持绑定EMR on ECS:Hadoop类型的集群。

对方EMR集群

选择该账号下需要注册至DataWorks的EMR集群。

配置文件

请在产品界面按照提示配置各项配置文件。获取配置文件详情请参见导出和导入服务配置。导出后请根据产品界面要上传的配置文件,修改文件名称。

image.png

此外,您还可以登录EMR集群,通过以下路径获取相关配置文件。

/etc/ecm/hadoop-conf/core-site.xml
/etc/ecm/hadoop-conf/hdfs-site.xml
/etc/ecm/hadoop-conf/mapred-site.xml
/etc/ecm/hadoop-conf/yarn-site.xml
/etc/ecm/hive-conf/hive-site.xml
/etc/ecm/spark-conf/spark-defaults.conf
/etc/ecm/spark-conf/spark-env.sh

默认访问身份

定义在当前工作空间下,用什么身份访问该EMR集群。

  • 开发环境:可选择统一使用集群账号:hadoop,或任务责任人所映射的集群账号。

  • 生产环境:可选择统一使用集群账号:hadoop、任务责任人、阿里云主账号或阿里云子账号所映射的集群账号。

说明

当默认访问身份选择任务责任人、阿里云主账号或阿里云子账号所映射的集群账号时,您可以参考设置集群身份映射手动配置DataWorks租户成员与EMR集群指定账号的映射关系。通过该映射的集群账号在DataWorks执行EMR任务,未配置DataWorks租户成员与集群账号映射的情况下,DataWorks处理策略如下:

  • 若使用RAM用户(子账号)执行任务:我们将默认按照与当前操作人同名的EMR集群系统账号执行任务。若集群开启LDAP或者Kerberos认证,任务执行将失败。

  • 若使用阿里云主账号执行任务:DataWorks任务执行将报错。

步骤三:资源组初始化

初次绑定集群、集群服务配置变更组件版本升级(例如:修改core-site.xml)请初始化资源组,确保资源组可正常访问EMR,资源组当前环境配置可正常执行EMR任务。

  1. 开源集群页面,找到已注册的EMR集群页签,单击右上角的资源组初始化

  2. 在需要的资源组后面单击初始化

  3. 完成后单击确认

说明
  • DataWorks仅支持使用独享调度资源组运行EMR任务,所以此处仅支持选择独享调度资源组进行资源组初始化操作。

  • 资源组初始化可能导致正在运行的任务失败。非必要场景(例如,集群配置变更,需要立即重新初始化资源组,否则会导致大量任务运行失败),建议在业务低峰期对资源组执行初始化操作。

后续步骤

  • 数据开发:您可参考通用开发流程配置相关组件环境。

  • 设置集群身份映射:当EMR集群默认访问身份非hadoop账号时,您需要配置集群身份映射,控制操作DataWorks的RAM用户在DataWorks仅可访问其有权限的资源,实现权限管控。

  • 设置全局YARN资源队列:您可通过YARN资源队列映射,指定各模块使用的YARN队列,并支持设置是否覆盖各模块的配置。

  • 设置全局Spark参数:您可参考Spark官方文档自定义全局Spark参数,并支持设置当存在同名参数时,空间级Spark参数配置是否覆盖各模块的配置。

  • 本页导读 (1)