本文匯總了使用Impala時的常見問題。
Impala 3.4使用JDBC查詢Impala 10秒提示會話逾時,該怎麼辦?
您可以在Impala控制台通過命令設定FETCH_ROWS_TIMEOUT_MS參數為0,指定會話永不到期。命令樣本如下所示。
jdbc:impala://impala-hive.ymt.io:21050/ymtcube;FETCH_ROWS_TIMEOUT_MS=0Impala無法找到Hive新增的表,該怎麼辦?
在Impala之外操作中繼資料後,您可以在Impala控制台通過使用命令INVALIDATE METADATA,以重新整理全庫或者某個表的中繼資料。
Impala寫入Hive表資料的時候,是否可以修改寫入檔案的owner?
使用Impala寫入的表檔案的owner預設為Impala,暫不支援修改。
如何調整Impalad可使用的節點記憶體總量?
您可以在EMR控制台Impala服務的配置頁簽,在搜尋地區搜尋mem_limit參數,預設值為80%,表示允許使用本機記憶體的80%來計算。您也可以配置為具體的記憶體大小,例如10G。
如何限制單條查詢語句消耗記憶體的大小?
可以使用SQL語句set MEM_LIMIT=Xg限制,在該語句Session範圍內生效。
如何提升非JOIN語句的查詢效率?
對於單條沒有JOIN的查詢語句,您可以在Impala控制台通過命令設定mt_dop參數為n以提升並發度,其中n為每台機器的並發度。
Ranger開啟Impala後,新擴容的Impala節點無法正常工作,該怎麼辦?
問題現象:EMR-5.6.0及之前的版本,在EMR控制台上Ranger開啟Impala並擴容節點後,新擴容的Impala節點無法正常工作。
問題分析:開啟Ranger會將Ranger相關設定檔複製到各個Impalad的配置中,使Impala支援Ranger。然而,在擴容時未觸發此操作,導致新擴容的節點缺少Ranger相關配置,從而無法正常工作。
解決方案:您可以通過以下兩種方式處理。
方式一:在EMR控制台中的Ranger服務的狀態頁簽中,選擇RangerAdmin操作列的,重新執行enableImpala的操作。
方式二:登入叢集的emr-header-1節點,將
/etc/ecm/impala-conf目錄下的ranger-hive-audit.xml、ranger-hive-security.xml、ranger-policymgr-ssl.xml、ranger-security.xml四個檔案複製到新擴容節點的/etc/ecm/impala-conf目錄下。
> enableImpala