Impala 自动刷新 hive 元数据原理

2022-04-11 00:00:00 用户 事件 失效 刷新 都会

  

描述:
目前,在lmpala中,有多种方法可以使存储在catalog中的表元数据失效或刷新。Catalog中的对象可以根据基于使用的方法(invalidate_tables_timeout_s)或在存在GC压力(invalidate_tables_on_memory_pressure)时失效(IMPALA-7448)。然而,大多数用户在想要同步到HDFS或HMS的新信息时都会使用invalidate 命令。

然而,当数据被修改或在Impala(如Hive)或不同的Impala集群之外添加新的数据时,用户并不清楚他们是否需要发出invalidate命令。从安全的角度来说,用户不断发出不必要的invalidate命令,这会导致性能和稳定性问题。

Hive Metastore提供了一个简单的APl来获取存储在其数据库中的元数据信息的增量更新。每个在metastore中执行add/alter/drop操作的API都会生成事件,可以使用get_next_notification APl获取事件。每个事件都有一个的并且正在增加的事件id。通知事件id可以通过get_current_notificationEventId API获取。

该JRA建议利用metastore中的此类事件主动使catalogd 中的信息失效或刷新。配置后,catalogad 可以轮询此类事件并根据事件采取行动(如添加/删除/刷新分区、添加/删除/使表和数据库失效)。通过这种方式,我们可以自动刷新catalogd中的状态,这将极大地满足用户希望看到新信息(在可配置的时间延迟间隔内)的用例,而不会向系统发送大量invalidate请求。

我会在这个JRA上附加一个设计文档,并创建子任务,随时可以在JIRA上发表评论或提出改进design的建议。

翻译自设计文档:https://issues.apache.org/jira/browse/IMPALA-7954

详细说明查看设计文档。
————————————————
版权声明:本文为CSDN博主「香山上的麻雀1008」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_26502245/article/details/114630473

相关文章