为什么在 impala statestore 关闭时执行 DDL,Impala 查询会失败?

Why does an Impala query fail if DDL is executed when impala statestore is down?

在impalahere的官方文档中,statestore组件有这样一句话:

If you issue a DDL statement while the statestore is down, the queries that access the new object the DDL created will fail.

如果我错了请纠正我,但通过 Impala SQL 进行的元数据更改会从 Impala 目录服务传播到 Impala 守护进程。那为什么statestore挂了,通过DDL生成的新对象查询会失败呢?

只是对您的理解做了一个小小的修正,文档如下所述

The Impala component known as the catalog service relays the metadata changes from Impala SQL statements to all the Impala daemons in a cluster.

所以基本上它通过 StateStore 将元数据更改中继到 Impala 守护程序。您还将在文档中看到以下内容,

Because the statestore's purpose is to help when things go wrong and to broadcast metadata to coordinators

因此,任何元数据更改都由目录服务通过 Statestore 服务中继到 Impala 守护程序。

简而言之,Impala 守护程序和 Statestore 在 Statestore 启动和 运行 时始终处于连接状态。 Statestore 负责

  • 监控所有 Impala 守护进程并允许其他 Impala 守护进程 知道是否在其中一个守护程序上发现任何健康问题(例如守护程序关闭)。

  • 它在查询时将元数据更改广播到 Impala 守护进程 在 Invalidate Metadata 期间执行。

希望对您有所帮助!