DataWorks支持可视化创建EMR(E-MapReduce) JAR、EMR(E-MapReduce)FILE资源,用于上传提交自定义函数或开源MR示例源码作为资源,便于EMR 计算节点的数据开发过程中引用。本文为您介绍如何创建资源,并上传提交资源,为资源的使用做好前期准备。

前提条件

  • 您已创建阿里云EMR集群,且集群所在的安全组中入方向的安全策略包含以下策略。
    • 授权策略:允许
    • 协议类型:自定义 TCP
    • 端口范围:8898/8898
    • 授权对象:100.104.0.0/16
  • 您在工作空间配置页面添加E-MapReduce计算引擎实例后,当前页面才会显示EMR目录。详情请参见配置工作空间
  • 如果EMR启用了Ranger,则使用DataWorks进行EMR的作业开发前,您需要在EMR中修改配置,添加白名单配置并重启Hive,否则作业运行时会报错Cannot modify spark.yarn.queue at runtimeCannot modify SKYNET_BIZDATE at runtime
    1. 白名单的配置通过EMR的自定义参数,添加Key和Value进行配置,以Hive组件的配置为例,配置值如下。
      hive.security.authorization.sqlstd.confwhitelist.append=tez.*|spark.*|mapred.*|mapreduce.*|ALISA.*|SKYNET.*
      说明 其中ALISA.*SKYNET.*为DataWorks专有的配置。
    2. 白名单配置完成后需要重启服务,重启后配置才会生效。重启服务的操作详情请参见重启服务
  • 已开通独享调度资源组,并且独享调度资源组需要绑定EMR所在的VPC专有网络,详情请参见新增和使用独享调度资源组
    说明 仅支持使用独享调度资源组运行该类型任务。

创建EMR资源

  1. 进入数据开发页面。
    1. 登录DataWorks控制台
    2. 在左侧导航栏,单击工作空间列表
    3. 选择工作空间所在地域后,单击相应工作空间后的进入数据开发
  2. 鼠标悬停至新建图标,单击EMR > 资源
    您也可以找到相应的业务流程,右键单击EMR,选择新建 > EMR JAR或EMR FILE
  3. 新建资源对话框中,配置各项参数。
    新建资源
    参数 描述
    引擎类型 默认新建EMR类型的资源,不可修改。
    引擎实例 从下拉列表中选择需要新建资源的目标引擎实例。
    说明 此处展示工作空间下绑定好的EMR引擎。
    目标文件夹 默认当前所在文件夹的路径,您可以进行修改。
    存储路径 为该资源选择存储的路径,包括OSSHDFS两种存储类型:
    • 如果您选择OSS,需要先授权再选择目录的位置。
      说明 需要主账号在此处进行授权操作。
    • 如果您选择HDFS,需要手动输入存储路径。
    文件类型 仅支持EMR JAR、EMR FILE类型的资源。
    上传文件 单击点击上传,在本地选择相应文件后,单击打开
    资源名称 新建的EMR资源的名称,如果您上传的是jar资源,您需要添加后缀名.jar
  4. 新建资源对话框中,单击确定
  5. 单击工具栏中的保存提交图标,保存并提交资源至调度开发服务器端。
    说明

    提交时,您需要选择提交资源所用的调度资源组,当使用独享调度资源组提交表时,DataWorks平台将下发对应新建资源的任务到引擎侧执行,并打印执行过程的执行日志,如果资源提交过程中出现问题,您可以通过日志先自助排查。如果您目前无可用的独享调度资源组,请购买并配置独享调度资源组便于使用,操作详情请参见新增和使用独享调度资源组

使用资源注册函数

DataWorks支持可视化方式使用资源来注册函数,当您将函数注册所需的资源通过DataWorks可视化上传后,便可通过可视化方式在函数注册时使用该资源。注册函数

节点中使用资源

创建完成EMR JAR资源后,如果您需要在节点中直接使用资源,您需要右键资源,选择引用资源,引用方式如下图所示。节点中使用资源
说明 节点中引用资源后,会自动添加一条@resource_reference{"resourcename},表示节点内已经引用该资源。

详细的引用操作步骤可参见创建并使用EMR MR节点

资源版本管理

每次提交资源都将生成一个资源版本,您可以通过右键资源查看历史版本查看并下载资源。资源版本