使用如下步驟診斷與調試 Impala 各個方面的問題: html
一般來講,假如在 Impala 中查詢執行失敗,能夠在 Hive 裏再試着運行一下。 web
下表中列出了常見問題和可能的解決辦法: sql
現象 shell |
解釋 瀏覽器 |
建議 服務器 |
---|---|---|
錶鏈接失敗(Joins fail to complete) oop |
多是內存不足。當執行鏈接操做時,待鏈接的全部數據集合中的全部數據都被載入到內存中。數據集可能很是大,h 測試 |
Add more memory to your system or join smaller data sets. ui |
查詢返回結果不正確(Queries return incorrect results) spa |
Impala 元數據多是過時的 |
按照 語言手冊裏的 REFRESH 語法來刷新 Hive 元數據 |
查詢返回結果慢(Queries are slow to return results) |
一些 impalad 實例可能沒啓動。使用瀏覽器登陸到運行 Impala state store 的主機,訪問地址是:http://hostname:port/metrics。
注意:替換上面的主機名和端口號爲你運行 Impala state store 服務的主機名以及 web 服務器端口。端口默認是25010。
頁面上列出的 impalad 實例的個數應當與集羣中安裝的 impalad 實例的個數一致。每一個數據節點上都應當安裝 impalad 實例。
|
確認全部數據節點上都安裝了 Impala。啓動全部沒運行的 impalad 實例 |
查詢返回結果慢(Queries are slow to return results) |
Impala 可能沒有配置使用本地校驗。本地校驗使用機器特定的方法計算 HDFS 數據的校驗和,很是快速(Native checksumming uses machine-specific instructions to compute checksums over HDFS data very quickly)。檢查 Impala l日誌,假如發現 "INFO util.NativeCodeLoader: Loaded the native-hadoop" 信息,則沒有啓用本地校驗。 |
參照 Impala 安裝後配置,確保 Impala 使用本地校驗 |
查詢返回結果慢(Queries are slow to return results) |
Impala 可能沒有配置使用數據位置跟蹤(data locality tracking)。 |
參照 Impala 安裝後配置,測試 Impala 是否啓用數據位置跟蹤,必要時啓用 |
嘗試完成 Impala 任務如執行 INSERT-SELECT 操做失敗。Impala 日誌中提示文件由於權限拒絕沒法打開 |
這多是權限問題形成的。例如,你可能以 hive 用戶使用 Hive shell 建立了一個表。表建立以後,你可能嘗試執行其餘操做,例如向表中 INSERT-SELECT 數據。由於這個表使用 hive 用戶建立的,而執行 INSERT-SELECT 操做的是另一個用戶,這一操做可能會由於權限問題而失敗。 |
一般應確保 Impala 用戶有足夠的權限。在以前的例子裏,確保 Impala 用戶對 Hive 用戶建立的表有足夠的權限。 |