在impala的官方文档中,statestore组件有一个声明:
如果在statestore关闭时发出ddl语句,那么访问ddl创建的新对象的查询将失败。
如果我错了,请纠正我,但是通过impala sql进行的元数据更改会从impala目录服务传播到impala守护进程。那么,如果statestore关闭了,为什么通过ddl生成的新对象查询会失败呢?
在impala的官方文档中,statestore组件有一个声明:
如果在statestore关闭时发出ddl语句,那么访问ddl创建的新对象的查询将失败。
如果我错了,请纠正我,但是通过impala sql进行的元数据更改会从impala目录服务传播到impala守护进程。那么,如果statestore关闭了,为什么通过ddl生成的新对象查询会失败呢?
1条答案
按热度按时间xzlaal3s1#
只是对你的理解做了一个小小的修正,文件上说
称为catalog服务的impala组件将来自impala sql语句的元数据更改中继到集群中的所有impala守护进程。
所以基本上,它通过statestore将元数据更改传递给impala守护进程。您还可以在文档中看到以下内容,
因为statestore的目的是在出现问题时提供帮助,并向协调器广播元数据
因此,任何元数据更改都由catalog服务通过statestore服务转发给impala守护进程。
简单地说,当statestore启动并运行时,impala守护进程和statestore总是保持连接。statestore负责
监视所有 Impala 守护进程,并让其他 Impala 守护进程知道是否在其中一个守护进程上发现任何运行状况问题(例如守护进程宕机)。
在执行查询和使元数据无效期间,它将元数据更改广播到impala守护进程。
希望有帮助!