1. 程式人生 > >Impala invalidate metadata詳細使用方法說明

Impala invalidate metadata詳細使用方法說明

前言

Impala一直是我們各個業務使用的重點,但是在Impala的使用上感覺一直不是很成熟,比如說 invalidate metadata操作,到底什麼時候該使用-r引數,什麼時候不使用,什麼時候可以用refresh代替,什麼時候不可以,這一直是一個問題。因此有了這次的測試。

這次的測試目的就是為了對Impala的元資料方面的使用進行一個徹底的測試,給出一個比較明確答覆。在最大的成都上來減緩Impala叢集的壓力。

測試準備

本次測試,分為外表和內表,分別對錶和分割槽進行各種操作,然後記錄不同的操作是否需要使用-r或者refresh。

測試主要在三臺機器上進行,一臺進行各種資料操作,另兩臺進行資料查詢操作。

其中invalidate metadata tablenamerefresh tablename隨機在各臺機器上進行測試。

測試詳情

下面就是測試詳情。比較容易理解,不再解釋。
impala測試結果

結論

測試的結果比較出乎意料,比較簡單的一個結論就是,除了對hdfs進行操作外,只要通過impala的命令執行的資料修改,一律不需要進行元資料的同步工作,這就意味著,基本上所有指令碼的-r引數都可以刪除,查詢語句的時候也不需要使用-r引數,如果害怕資料過期,那麼斷開重新連線即可。

注意:唯一需要注意的就是,只要對hdfs進行了操作,就需要執行元資料的更新的操作,根據Impala官方的建議,這種情況完全可以使用refresh tablename

操作,而不必加-r引數。

補充

補充一: 親測,catalog服務同步元資料的時候會有一定的延遲,但是不會特別長,我遇到過一次,延遲在一秒左右,不會太長。

補充二:這次沒有對hive進行測試,但是按照官網的解釋,通過hive和hdfs進行的操作,都會需要執行更新元資料的操作。

2016-04-14 19:08:00 hzct

微信公眾號