HDInsight 上的 HCatalog 通知

HCatalog notifications on HDInsight

我正在尝试在 HDInsight 群集上启用 HCatalog 通知,以便我可以跟踪元数据更改。

我的两个头节点上都有一个 ActiveMQ 代理 运行。它正在工作,因为我已经能够订阅它并接收我发送给自己的通知。我尝试通过 Ambari UI 更改 hive-site.xml 的配置来启用 HCatalog 通知(我在 [=16] 中添加了 org.apache.hive.hcatalog.listener.NotificationListener =]hive.metastore.event.listeners 字段)但没有给出任何结果。我还通过 SSH 连接到我的 HDInsight 集群的头节点,并通过添加一个 属性 手动更改 hive-site.xml 文件(显然有很多)中的配置,就像我通过 Ambari 尝试的那样无效的事件。每次配置更改后,我都会通过 Ambari UI 重新启动配置单元(甚至所有)服务。我的猜测是,出于某种原因,我所做的更改没有应用。

对此有什么经验或建议吗?

我通过执行以下操作成功激活了自定义通知侦听器:

  1. 将实现MetaStoreEventListener接口的class打包成jar
  2. 将 jar 放入每个头节点上的 hive-server 的 lib 文件夹中
  3. 在 Ambari UI 中,转到 Hive => Configs => Advanced => Custom hive-site 并添加 属性:

    hive.metastore.event.listeners=[full_class_name_including_package]

  4. 保存配置(如果出现警告,请单击仍然继续)

  5. 出现提示时重新启动所有受影响的服务。

完成这些步骤后,Metastore 在每次 DDL 操作后调用我的通知侦听器,我能够跟踪所有元数据更改。