您好,登錄后才能下訂單哦!
元數據作為大數據的源泉,有著非常重要的作用。可在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”, 每天同行嗨不停,還有更多資源等著你!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。