Impala自动刷新元数据配置及验证

需积分: 28 3 下载量 201 浏览量 更新于2024-08-05 收藏 306KB DOCX 举报
"Impala自动刷新元数据配置文档主要针对在使用Impala处理数据时遇到的元数据更新延迟问题,提供了详细的配置步骤以实现Impala基于事件的自动元数据同步。文档适用于CM和CDH版本6.3.0,Impala版本3.2.0,RedHat7.6操作系统以及Hive版本2.1.1的环境。" 在Impala的运行过程中,当使用`overwrite`操作覆盖原有数据时,可能会遇到元数据刷新不及时,导致查询错误的情况。为解决这个问题,可以配置Impala与Hive Metastore Service (HMS) 的事件同步,以实现实时或近实时的元数据更新。 首先,在CM界面的Hive配置中,需要启用“启用数据库中的存储通知”。这个选项确保Hive能够发送存储事件通知,以便其他服务如Impala可以捕获这些变化。值得注意的是,数据库通知的保留时间为2天,超过这个时间未更新的事件将会丢失。 接下来,需要修改Hive的几个关键配置参数,分别在HiveMetastoreServer、Hive服务和Hive客户端的高级配置代码段中: 1. `hive.metastore.notifications.add.thrift.objects`应设为`true`,这允许Hive Metastore在数据库中存储事件通知。 2. `hive.metastore.alter.notifications.basic`设为`false`,可能是为了避免发送基础的更改事件通知。 3. 在Hive服务和Hive客户端中,`hive.metastore.dml.events`都需设为`true`,以开启DML(数据操纵语言)事件通知。 完成上述配置修改后,必须重启Hive服务以使新配置生效。然后,可以在HiveServer2的Web UI中检查这些配置是否成功应用。 在Impala层面,需要在CM的Impala配置中,搜索catalog命令行参数,并添加`--hms_event_polling_interval_s=2`。这个参数指示Impala每隔2秒(单位为秒)检查一次HMS的事件,以获取最新的元数据变更。设置值应小于5秒,且默认值为0,表示禁用此功能。确保在启用此参数之前,Hive的相关配置已经生效,否则可能影响Impala的CatalogServer启动。 验证配置是否生效,可以通过CatalogServer的Web UI查看/varz接口。如果配置正确,当Hive创建新表时,Impala无需手动刷新元数据,就能在查询中找到新建的表,这就表明Impala已成功配置为自动刷新元数据。