您可以创建EMR(E-MapReduce) Impala节点,对PB级大数据进行快速、实时的交互式SQL查询。

前提条件

  • 您已创建阿里云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专有网络,详情请参见新增和使用独享调度资源组
    说明 仅支持使用独享调度资源组运行该类型任务。

操作步骤

  1. 进入数据开发页面。
    1. 登录DataWorks控制台
    2. 在左侧导航栏,单击工作空间列表
    3. 选择工作空间所在地域后,单击相应工作空间后的进入数据开发
  2. 鼠标悬停至新建图标,单击EMR > EMR Impala
    您也可以找到相应的业务流程,右键单击EMR,选择新建 > EMR Impala
  3. 新建节点对话框中,输入节点名称,并选择目标文件夹
    说明 节点名称必须是大小写字母、中文、数字、下划线(_)和小数点(.),且不能超过128个字符。
  4. 单击提交
  5. 在节点编辑页面,输入需要执行的任务代码。
    代码示例如下。
    -- SQL语句示例。
    -- SQL语句最大不能超过130KB。
    show tables;
    -- 可以结合调度参数使用。
    CREATE TABLE IF NOT EXISTS userinfo (
    ip STRING COMMENT'ip地址',
    uid STRING COMMENT'用户ID'
    )PARTITIONED BY(
    dt STRING
    );
    ALTER TABLE userinfo ADD IF NOT EXISTS PARTITION(dt=$'{bizdate}');
    -- 系统会自动为SELECT语句加上'limit 10000'的限制。
    select * from userinfo ;
    调度参数详情请参见配置调度参数

    如果您需要修改代码中的参数赋值,请单击界面上方工具栏的高级运行。参数赋值逻辑详情请参见:运行,高级运行和开发环境冒烟测试赋值逻辑有什么区别

    impala更多作业配置,详情请参考Impala SQL作业配置
    说明 如果您的工作空间绑定多个EMR引擎,需要选择EMR引擎。如果仅绑定一个EMR引擎,则无需选择。
  6. 编辑高级配置
    • "SPARK_CONF": "--conf spark.driver.memory=2g --conf xxx=xxx" ,设置spark 任务运行参数,多个参数在该key中追加。
    • “queue”:提交作业的调度队列,默认为default队列。
    • “vcores”: 虚拟核数,默认为1。
    • “memory”:内存,默认为2048MB(用于设置启动器Launcher的内存配额)。
    • “priority”:优先级,默认为1。
    • “FLOW_SKIP_SQL_ANALYZE”:SQL语句执行方式,参数值为false表示每次执行一条SQL语句;参数值为true表示每次执行多条SQL语句。
    • “USE_GATEWAY”:设置本节点提交作业时,是否通过Gateway集群提交,true标明通过Gateway集群提交,false表明不通过Gateway集群提交,默认提交到header节点。
      说明 如果本节点所在的集群未关联Gateway集群,此处手动设置参数取值为true时,后续提交EMR作业时会失败。
  7. 调度配置界面对节点配置调度相关参数。
    相关配置详情请参见:配置基础属性
  8. 保存并提交节点。
    注意 您需要设置节点的重跑属性依赖的上游节点,才可以提交节点。
    1. 单击工具栏中的保存图标,保存节点。
    2. 单击工具栏中的提交图标。
    3. 提交新版本对话框中,输入变更描述
    4. 单击确认
    如果您使用的是标准模式的工作空间,提交成功后,请单击右上方的发布。具体操作请参见发布任务
  9. 测试节点,详情请参见查看周期任务