E-MapReduce集群默认在Hive服务上集成了EMR-HOOK。EMR-HOOK可以收集作业的SQL信息,例如数据血缘、访问频次等。通过EMR-HOOK,您可以利用数据湖构建(DLF)的数据概况,以统计表和分区的访问次数。同时,您也可以使用DataWorks来管理数据血缘。本文将为您介绍如何配置Hive服务的EMR-HOOK。
前提条件
已创建DataLake或自定义集群,且选择了Hive服务,详情请参见创建集群。
使用限制
- EMR-HOOK不支持在通过EMR-CLI自定义部署的Gateway环境下收集作业相关的SQL信息。 
- EMR-5.16.0之前版本、EMR-3.50.0之前版本,不支持在Gateway上同步hive.exec.post.hooks(Hive)和spark.sql.queryExecutionListeners(Spark)参数;EMR-5.16.0及之后版本、EMR-3.50.0及之后版本,不仅实现了上述参数在Gateway节点上的同步,还引入了新的参数hive_aux_jars_path_gateway_only,允许您在Gateway节点上独立使用自定义扩展的JAR文件来增强功能。 
注意事项
- EMR-5.14.0之前版本、EMR-3.48.0之前版本,EMR-HOOK默认开启。 - 其中EMR-3.44版本的自定义(Custom)集群,在没有默认开启的情况下,您可以参见常见问题手动启用EMR-HOOK。 
- EMR-5.14.0及之后版本、EMR-3.48.0及之后版本,EMR-HOOK默认关闭,需要手动开启。 
操作步骤
- 进入集群服务页面。 - 在顶部菜单栏处,根据实际情况选择地域和资源组。 
- 在EMR on ECS页面,单击目标集群操作列的集群服务。 
 
- 配置EMR-HOOK。 - 在集群服务页面,单击Hive服务区域的配置。 
- 在配置页面的相应页签下,可以编辑或新增如下EMR-HOOK的配置项。 - 页签 - 参数 - 描述 - hive-site.xml - hive.exec.post.hooks - 监听Hive服务执行的SQL信息,用于数据血缘和访问频次。 - 开启EMR-HOOK时,参数值填写为 - com.aliyun.emr.meta.hive.hook.LineageLoggerHook。
- 关闭EMR-HOOK时,参数值置为空。 
 - dlf.emrhook.webtracking - 是否开启访问频次上报。取值如下: - true:开启。 
- false:不开启。 
 - hivemetastore-site.xml - hive.metastore.event.listeners - 监听Hive元数据变更的事件信息,用于数据血缘。 - 开启EMR-HOOK时,参数值填写为 - com.aliyun.emr.meta.hive.listener.MetaStoreListener。
- 关闭EMR-HOOK时,参数值置为空。 
 - hive.metastore.pre.event.listeners - 监听Hive元数据变更之前的事件信息,用于数据血缘。 - 开启EMR-HOOK时,参数值填写为 - com.aliyun.emr.meta.hive.listener.MetaStorePreAuditListener。
- 关闭EMR-HOOK时,参数值置为空。 
 说明- 如果关闭EMR-HOOK,则数据湖构建(DLF)控制台数据表的数据概况页面将不再显示当天访问次数、最近7天访问次数、最近30天访问次数的数据。 
- 保存配置。 - 在配置页面,单击保存。 
- 在弹出的对话框中,输入执行原因,单击保存。 
 
 
- 重启Hive。 - 在配置页面,选择更多操作> 重启。 
- 在弹出的对话框中,输入执行原因,单击确定。 
- 在确认对话中,单击确定。 
 
- 查看数据概况和数据血缘。 
常见问题
相关文档
如需配置Spark服务的EMR-HOOK,详情请参见SparkSQL使用扩展记录数据血缘和访问历史。