DataWorks支持基于EMR(E-MapReduce)计算引擎创建Hive、MR、Presto和Spark SQL等节点,实现EMR任务工作流的配置、定时调度和元数据管理等功能,帮助EMR用户更好地产出数据。本文为您介绍使用DataLake(新版数据湖)集群在DataWorks上进行EMR作业的注意事项及开发流程,建议操作前仔细查看。

背景信息

EMR的DataLake(新版数据湖)集群类型用于EMR新版控制台,是一个更灵活、可靠,以及高效的大数据计算集群,您可以基于该集群轻松构建一个可扩展的数据管道。DataLake的更多信息,详情请参见DataLake集群

使用限制

在DataWorks上执行EMR作业及其他操作时,EMR集群及DataWorks功能的限制和影响如下表所示。
限制类别说明
DataLake集群以及自定义集群版本必须大于等于3.41.0或5.7.0。若集群版本过低,则无法使用DataWorks相关功能。
DataWorks功能
  • DataWorks暂不支持执行EMR的Flink任务。
  • 仅EMR Hive、EMR Spark及EMR Spark 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支持查看表级血缘。
DataWorks on EMR的使用仅支持使用独享调度资源组运行任务。

使用流程

DataWorks On EMR的使用流程如下:
  1. 准备工作
    在DataWorks上进行EMR任务开发前,为保证开发流程顺利执行,您需要分别在EMR侧及DataWorks侧进行相关准备工作。
    准备类别操作说明参考链接
    EMR侧为避免作业运行时出错,您需要先检查DataLake集群的部分关键配置是否满足要求。主要涉及LDAP、Ranger白名单、安全策略等配置,该类配置均是为了在DataWorks运行EMR引擎任务时进行鉴权,在EMR集群进行身份认证。
    DataWorks侧
    • 您需绑定EMR集群为DataWorks的引擎,该集群为后续在DataWorks上运行EMR任务的引擎环境。请您创建或选择DataWorks简单模式的工作空间绑定EMR集群为DataWorks的引擎。
      说明 绑定引擎可使用快捷模式及安全模式。快捷模式用于快速开展各类数据工作,安全模式用于实现更具安全性的数据权限管理,您可基于当前EMR集群现状及业务需要选择。
    • 进行独享调度资源组购买及配置、添加工作空间成员及授权等相关操作,准备好运行EMR作业所需的资源、权限等,确保EMR作业顺利执行。
  2. 开发EMR作业
    1. 创建业务流程。

      数据开发基于业务流程下对应的开发组件进行具体开发操作,创建节点前需要先新建业务流程。创建业务流程,详情请参见创建周期业务流程

    2. 创建EMR节点。
      DataWorks基于节点进行任务开发,EMR集群上不同类型的任务在DataWorks中被封装为不同类型的EMR节点,您可根据业务需要,选择合适的节点类型进行EMR任务开发。创建EMR开发节点,详情请参见创建EMR节点
      说明 目前支持创建EMR Hive、EMR MR、EMR Spark SQL、EMR Spark、EMR Shell、EMR Presto、EMR Impala、EMR Spark Streaming等8种类型的节点。
    3. 代码开发及调试。

      完成EMR节点的作业开发后,为保障生产任务高效运行,避免计算资源浪费,建议您在任务发布前先对任务进行测试运行,详情请参见调试及查看任务

    4. 提交发布作业。
      EMR作业运行调试无误后,您需将目标作业提交发布至生产环境调度运行,详情请参见发布任务
      说明 任务需要发布至生产调度后,才会周期调度运行。

后续操作

EMR作业开发完成后,您可在DataWorks进行EMR元数据管理、任务运维监控及数据质量监控,保证EMR数据能够正常产出。
操作类别说明参考链接
EMR元数据管理绑定引擎后,数据地图将自动通过元数据采集方式采集该集群元数据,您可以在数据地图查看EMR表详情、产出信息等。
说明
  • 仅EMR Hive、EMR Spark、EMR Spark 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支持查看表级血缘。
  • 若绑定EMR引擎后仍无法在数据地图查看EMR元数据,请前往数据地图重新采集,详情请参见采集E-MapReduce元数据
数据地图概述
EMR数据质量监控数据质量提供对调度任务产出的表数据的质量监控能力,您可通过配置表的质量监控规则实现对表数据的监控。
说明 DataLake类型集群配置数据质量规则时,您需要选择dqc_emr_plugin_datalake插件。
添加插件。
数据质量概述
EMR任务运维监控智能监控提供调度任务执行状态的监控能力,您可通过配置智能监控规则实现任务运行状态的监控。智能监控概述

权限说明

DataWorks On EMR的使用过程中涉及的权限类别如下:
  • EMR集群认证与鉴权控制

    若您使用非系统账号进行集群身份认证,则需要先在集群开启对应的认证服务,并将在DataWorks上进行EMR任务开发的账号加入该认证服务。

  • EMR引擎绑定权限

    目标账号需要拥有AliyunEMRFullAccess权限策略,才可将EMR集群绑定至DataWorks作为开发EMR任务的引擎环境。

  • 数据权限控制
    • DataWorks

      在DataWorks中,您可通过DataWorks工作空间成员与集群账号映射的方式获得EMR引擎权限,实现DataWorks工作空间成员在EMR集群的用户认证与鉴权。不同任务责任人、阿里云主账号、阿里云RAM用户在DataWorks上运行EMR任务时,通过配置不同的数据操作权限,最终实现权限隔离。

    • EMR

      您可在EMR集群通过权限管理相关组件服务实现DataWorks上各用户的数据权限隔离。例如,通过Ranger组件对阿里云账号对应的集群用户进行权限管控。

      如果EMR已将DLF设置为元数据服务,并开启DLF-Auth组件实现数据湖构建DLF的权限功能,则您可以在DataWorks安全中心模块申请数据权限,详情请参见DLF数据访问权限控制

  • DataWorks功能模块使用权限控制

    在DataWorks运行EMR任务时,您需要拥有DataWorks数据开发(DataStudio)、数据地图、数据质量、智能监控等功能模块的使用权限,以便执行开发任务及开发后的运维、质量管控操作。

DataWorks On EMR的更多权限介绍,详情请参见DataWorks on EMR权限管控说明