天天看點

幾種impala-shell輸出模拟結果及方法

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

一、impala-shell外部指令

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

impala-shell –h可以幫助我們檢視幫助手冊

比如幾個常見的:

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

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

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

二、impala-shell内部指令

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

  • 進口氣動球閥

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

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

quit/exit指令 從Impala shell中彈出

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

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

 set explain_level=3;

profile指令執行sql語句之後執行,可以列印出更加詳細的執行步驟,主要用于查詢結果的檢視,叢集的調優等。

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

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

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