gpt4 book ai didi

hadoop - Cloudera Impala 使元数据无效

转载 作者:可可西里 更新时间:2023-11-01 14:18:22 34 4
gpt4 key购买 nike

正如在 impala 教程中讨论的那样,Impala 使用 Hive 共享的 Metastore。但已经提到,如果您使用配置单元在表上创建或执行某些版本,您应该执行 INVALIDATE METADATAREFRESH 命令以通知 impala 有关更改。

所以我很困惑,我的问题是:如果元数据数据库是共享的,为什么 impala 需要执行 INVALIDATE METADATAREFRESH

如果它是用于 impala 缓存元数据,为什么守护进程在发生缓存未命中时不更新缓存,而不需要手动刷新元数据?

感谢任何帮助。

最佳答案

好的!让我们从您在评论中提出的问题开始,即集中式元存储的好处是什么。

拥有中央元存储不需要用户在两个不同的位置维护元数据,Hive 和 Impala 各一个。用户可以拥有一个中央存储库,并且这两种工具都可以访问此位置以获取任何元数据信息。

现在,第二部分,为什么在共享元存储时需要执行 INVALIDATE METADATA 或 REFRESH?

Impala 利用大规模并行处理范例来完成工作。它不是为每个查询从集中式元存储中读取,而是倾向于将元数据保存在执行器节点中,以便它可以完全绕过可能会花费大量时间读取元数据的冷启动。

INVALIDATE METADATA/REFRESH 将元数据/ block 信息传播到执行节点。

为什么要手动?

在早期版本的 Impala 中,catalogd 进程不存在。需要通过上述命令传播元数据更新。从 Impala 1.2 开始,添加了 catalogd,此过程将元数据更改从 Impala SQL 语句中继到集群中的所有节点。

因此无需手动操作!

希望对您有所帮助。

关于hadoop - Cloudera Impala 使元数据无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33888133/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com