天天看點

Impala-shell指令參數

1.impala-shell外部指令

所謂的外部指令指的是不需要進入到impala-shell互動指令行當中即可執行的指令參數。impala-shell後面執行的時候可以帶很多參數。你可以在啟動 impala-shell 時設定,用于修改指令執行環境。

impala-shell –h可以幫助我們檢視幫助手冊。也可以參考課程附件資料。

比如幾個常見的:

impala-shell –r重新整理impala中繼資料,與建立連接配接後執行 REFRESH 語句效果相同

impala-shell –f 檔案路徑 執行指的的sql查詢檔案。

impala-shell –i指定連接配接運作 impalad 守護程序的主機。預設端口是 21000。你可以連接配接到叢集中運作 impalad 的任意主機。

impala-shell –o儲存執行結果到檔案當中去。

Impala-shell指令參數

2.impala-shell内部指令

所謂内部指令是指,進入impala-shell指令行之後可以執行的文法。

Impala-shell指令參數

connect hostname 連接配接到指定的機器impalad上去執行。

Impala-shell指令參數

refresh dbname.tablename增量重新整理,重新整理某一張表的中繼資料,主要用于重新整理hive當中資料表裡面的資料改變的情況。

Impala-shell指令參數

invalidate metadata全量重新整理,性能消耗較大,主要用于hive當中建立資料庫或者資料庫表的時候來進行重新整理。

quit/exit指令 從Impala shell中彈出

explain 指令 用于檢視sql語句的執行計劃。

Impala-shell指令參數

explain的值可以設定成0,1,2,3等幾個值,其中3級别是最高的,可以列印出最全的資訊

set explain_level=3;
           

profile指令執行sql語句之後執行,可以

列印出更加詳細的執行步驟,主要用于查詢結果的檢視,叢集的調優等。

Impala-shell指令參數

注意:如果在hive視窗中插入資料或者建立的資料庫或者資料庫表,那麼在impala當中是不可直接查詢,需要執行invalidate metadata以通知中繼資料的更新;

在impala-shell當中插入的資料,在impala當中是可以直接查詢到的,不需要重新整理資料庫,其中使用的就是catalog這個服務的功能實作的,catalog是impala1.2版本之後增加的子產品功能,主要作用就是同步impala之間的中繼資料。

更新操作通知Catalog,Catalog通過廣播的方式通知其它的Impalad程序。預設情況下Catalog是異步加載中繼資料的,是以查詢可能需要等待中繼資料加載完成之後才能進行(第一次加載)。