Impala隐藏的惊天秘密

本文介绍了Impala的体系结构及查询执行流程,重点解析了元数据缓存机制及其在内外部变化时的工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


元数据作为大数据的源泉,有着非常重要的作用。可在Impala中却隐藏着一个秘密?和元数据有着颇深的渊源,我们一起来追溯!

一、Impala体系结构

(1)每个slave节点运行一个Impala进程,和HDFS的DataNode进程同时协作

(2)两个其他的进程运行在master节点,用来支持查询执行

1、State Store进程:为ImpalaDaemon提供查找服务,并周期性地检查Impala进程状态

2、Catalog进程:把元数据的变更同步到所有ImpalaDaemons中


二、Impala如何执行查询

(1)Impala daemon查询执行过程

客户端(Impala-shell或Hue)连接到Impala daemon,它是Coordinator。Coordinator从State Store请求其他的Impala daemons,并把查询分发给其他的Impala daemons,最后返回结果给客户端。


三、元数据缓存

根据Impala的查询功能,我们可以知道在Impala里面存在元数据的缓存。元数据保存在Hive的Metastore里面,那么元数据缓存的作用是什么呢?就是在Impala启动的时候,将元数据缓存到Impala daemon的节点。当Impala daemon发起元数据变更的时候,比如说创建表,删除表,或者修改表的定义,这些都是可以缓存下来的。如果我们去查询表信息的时候,可以从缓存里面找到,直接在节点中进行查询,所以在每个Impala daemon里面有metadata cache节点用作缓存。


而当Impala进程改变了元数据,将会提示catalog服务,Catalog服务通知所有Impala daemons来更新缓存。


四、外部改变和元数据缓存

我们上面讲的都是内部的改变,然而很多时候还会有外部的改变,可外部的改变对于Impala来说是未知的,比如:

(1)Hive、Hcatalog或HueMetadata Manager改变了元数据

(2)数据直接添加到HDFS目录


外部的改变将导致Impala元数据缓存变得不可用,我们必须手动的刷新或验证Impala的元数据缓存。

当然,这种改变根据改变内容和性质的不同,有不同的方法去更新,比如:


有疑问,欢迎关注微信公众“大数据cn”来提问

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值