FAQ系列之Impala

語言: CN / TW / HK


我下載了一個配置文件,裏面有一堆沒有單位的數字。那些是什麼?

那是納秒。 查詢計劃 GUI 的格式適合您,但下載的配置文件只有基本數據。

當我使用 Hue 時,為什麼我的查詢長時間處於活動狀態?

Hue 保持查詢線程處於活動狀態,直到您關閉它。 有一種方法可以在 Hue 上設置超時。

Impala的查詢計劃是什麼樣子?

1. Exec Summary - 查詢片段執行時間的概述。 例如 這是一些處理偏差,因為片段 27 的平均時間為 17 分鐘,但最大時間為 4 小時。 由於某種原因,一個節點有太多的工作要做。


2. 查詢時間線 - 查詢時間線概覽。當 Rows 可用時,查詢結束。

有時,如果 Hue 保持打開狀態,則在獲取完成後查詢會持續很長時間,然後它會保持線程處於活動狀態。

3. 查詢計劃 - 這會更詳細地介紹每個片段,告訴您發生了什麼以及處理或交換了多少數據。

如何獲取Impala的查詢計劃:

1. Impala Daemon WebUI - 我最喜歡這個

優點 - 給出了一個圖形化的計劃並有一個漂亮的網絡界面

易於剪切和粘貼格式良好的查詢配置文件和計劃

缺點 - 很難知道哪個守護進程運行了查詢。

不讓你輕鬆下載文本查詢計劃——必須剪切和粘貼

2. Cloudera Manager - Impala 進程

轉到查詢選項卡並選擇最右側的查詢詳細信息。

優點 - 有一個下載文本配置文件按鈕

有一個很好的格式佈局。

缺點 - 文本配置文件下載始終更改為難以閲讀的納秒。

我寧願剪切和粘貼格式化的時間。

以下是格式化查詢時間線與下載時間線的比較:

3. 在 Hue 中運行解釋

您可以在查詢前鍵入 Explain 以查看查詢計劃。

優點- 容易做到。

缺點 - 你沒有得到查詢時間線或 exec 配置文件。

如何獲取Impala的cookbook指南?

查看 Impala Cookbook 以獲取端到端部署指南。地址:https://blog.cloudera.com/latest-impala-cookbook/

Impala的Schema設計建議是什麼?

  • 使用數字類型。儘可能避免字符串類型,以避免每次讀取列值時的字符串轉換成本、存儲字符串的內存開銷以及不同的比較語義。對於內存利用率、併發性、性能和 CPU 效率,這個“瑣碎”點的重要性怎麼強調都不為過。您應該使用字符串類型的情況:HBase 行鍵(為了性能)、Parquet 日期(為了 Hive 兼容性)和顯然是真實的文本字符串。

  • 儘可能避免 CHAR 和 VARCHAR。CHAR 和 VARCHAR 的效率明顯低於字符串,只有在應用程序無法處理可變長度字符串(例如 SAS)時才應使用。數字類型優先於字符串以上。如果您必須使用其中之一,請使用 VARCHAR 而不要使用 CHAR。

  • 明智地選擇分區。一個好的分區計劃既可以從常見的查詢過濾器中消除數據,又可以為長順序讀取提供足夠的分區大小,從而提高 IO 吞吐量。遵循 Impala 分區策略工作表。

Impala推薦的文件格式是什麼?

  • 總是喜歡 Parquet。Parquet 是一種列式格式,可提供其他列式數據存儲所證明的快速分析性能和最大存儲密度。使用 Parquet 可以最大限度地提高併發性、性能和 IO 效率。在轉換為 Parquet 之前,如果需要的話,可以使用 Avro 或可能的文本來攝取暫存。“在 Impala 表中使用 Parquet 文件格式”

  • 避免除 Parquet、Avro 和 Text 之外的文件格式。最佳模式是將數據攝取到 Avro 或文本中,因為它們的面向行的格式允許逐行寫入。然後將數據批量轉換為 Parquet,以利用列式性能和數據密度效率進行讀取。這些格式應涵蓋所有用例,並且是我們的工程工作最集中的地方(如果沒有,請聯繫 justin@)。Impala 將繼續為遺留數據開發其他文件格式。注意上一點總是更喜歡 Parquet。

  • 遵循文件和塊大小的最佳實踐。最佳做法是 256 MB Parquet 文件,以提供足夠的大小以提高 IO 掃描效率(建議使用 Impala 創建 Parquet 文件以避免當前 Parquet-MR/Hive 設置的複雜性)。如果在極少數情況下尋找 SLA < 5s,您可能會考慮根據 Advanced Block Sizing 自定義塊大小。

Impala查詢計劃的建議是什麼?

  • 始終在連接、聚合或創建/插入中涉及的所有表上計算統計信息。這是在不耗盡內存的情況下處理更大的表連接所必需的。添加新的大型數據元素時刷新統計信息以避免過時的統計信息。有關統計數據為何至關重要的更多詳細信息。

  • 不要在列數非常多的表上使用增量統計。每個節點上每個分區的每列增量統計數據佔用 400 字節。我們建議在可能的情況下將它用於具有較少列的較大表,並注意增量統計數據並不適合所有客户。請參閲“增量統計概述”

  • 使用 EXPLAIN 按照查詢計劃驗證來驗證計劃是否合理。設置explain_level=2 以顯示掃描節點中統計信息的可用性。“瞭解 Impala 查詢性能 - 解釋計劃和查詢配置文件”

Impala的併發性和多租户建議是什麼?

  • 使用 NLB(網絡負載平衡器)來實現容錯和可擴展性。這是必要的,因此您可以在 ImpalaD 之間分散連接以避免單點故障並分散任何最終步驟和客户端連接的負載。

  • 為 MR/YARN 設置 cgroup 資源限制併為 Impala 使用內存限制。如果您在同一集羣上同時運行批處理作業(例如 MR、Spark、Pig、Hive)和 Impala,您應該為 MR/YARN 設置 cgroup 限制,並使用 Impala 的內存限制來控制這些工作負載之間的資源分配。

  • 對併發使用准入控制和查詢隊列。如果您同時運行多個用户,您可以使用准入控制來避免集羣過度飽和並支持多租户。

Impala監控的方法有哪些?

  • 使用 CM 來監控查詢。

  • 使用 Impala Charts 下的 CM Best Practices 來確認上面的一些最佳實踐。




本文分享自微信公眾號 - 大數據雜貨鋪(bigdataGrocery)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閲讀的你也加入,一起分享。