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-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使用扩展记录数据血缘和访问历史。