Azure HDInsight 互動式查詢叢集 (Hive LLAP)
本文提供上線步驟,以便在 Azure HDInsight 中針對 Interactive Query (LLAP) 叢集類型啟用排程型自動調整。 其中包括在 Hive-LLAP 中操作自動調整的一些最佳做法。
支援能力
- HDI 3.6 Interactive Query (LLAP) 叢集不支援自動調整。
- Interactive Query 叢集僅支援排程型自動調整。
Interactive Query (LLAP) 自動調整的功能支援性
| 功能 | 排程型自動調整 |
|---|---|
| 伺服器負載管理 | 否 |
| Hive Warehouse Connector | 是 |
| 手動安裝的 LLAP | 否 |
警告
如果 HDI Interactive Query 叢集上安裝的其他服務利用 YARN 資源,則排程型自動調整的行為沒有確定性。
Interactive Query 叢集的自動調整設定
- 建立 HDInsight Interactive Query 叢集。
- 成功建立叢集後,瀏覽至 Azure 入口網站並套用建議的指令碼動作
- Script Action: https://hdiconfigactions2.blob.core.windows.net/update-ambari-configs-for-llap-autoscale/update_ambari_configs.sh
- Required Parameters:<MAX CONCURRENT QUERIES> <TEZ Queue Capacity Percent>
- <MAX CONCURRENT QUERIES> is a parameter that sets the max concurrent queries to run, it should be set to the max largest worker node count out of the schedules.
- <TEZ Queue Capacity Percent> The configurations below in the example are calculated based on D14v2 worker node SKU (100GB per yarn node) I.e., we are allocating 6% (6GB) per node to launch at least one TEZ AM which is of 4GB. If we are using smaller SKU worker nodes, the above configs need to be tuned proportionately. We need to allocate enough capacity for at least one TEZ AM to run on each node. Please refer to HDInsight Interactive Query Cluster(LLAP) sizing guide | Microsoft Docs for more details.
- Details:
Above script action will update the Interactive Query cluster with the following:
1. Configure a separate Tez queue to launch Tez Sessions. If no arguments are passed, we would configure Default Max Concurrency as 16 and Tez Queue Capacity as 6% of the overall cluster capacity.
2. Tunes hive configs for autoscale.
3. Sets the max concurrent queries can run in parallel.
- Example: https://hdiconfigactions2.blob.core.windows.net/update-ambari-configs-for-llap-autoscale/update_ambari_configs.sh 21 6
附註
建議在兩個排程之間有足夠的差距,以便有效率地利用資料快取,也就是排程在尖峰使用量時擴大,而在沒有使用量時縮小。
Interactive Query 自動調整常見問題集
1. 根據設定的排程,縮小作業期間執行中的作業會發生什麼情況?
如果觸發縮小時有執行中的作業,我們可以預期下列其中一個結果
- 由於終止 Tez AM,查詢失敗。
- 由於容量降低,查詢變慢,但順利完成。
- 查詢順利完成,沒有任何影響。
附註
建議在縮小排程期間為使用者規劃適當的關閉時間。
2. 使用 Hive Warehouse Connector 在已啟用自動調整的 LLAP 叢集上執行查詢時,執行中的 Spark 作業會發生什麼情況?
如果觸發縮小時有執行中的作業 (從 Apache Spark 觸發),我們可以預期下列其中一個結果。
- 因為 Tez AMS 或容器遺失造成來自 Spark 驅動程式層級的 JDBC 呼叫失敗,Spark 作業失敗
- 由於容量降低,Spark 作業變慢,但順利完成。
- Spark 作業順利完成,沒有任何影響。
3. 即使在擴大後,為什麼查詢執行還是很慢?
由於自動調整智慧探查會在自動調整期間 add/remove 背景工作節點,所以在新增的背景工作節點上,LLAP 資料快取在擴大之後需要暖身。 給定資料集上的第一個查詢可能由於快取遺漏而較慢,但後續的查詢會快速執行。 建議在縮放之後對效能關鍵資料表執行一些查詢,讓資料快取暖身 (選擇性)。
4. 排程型自動調整是否支援 LLAP 中的工作負載管理?
目前,排程型自動調整不支援 LLAP 中的工作負載管理。 不過,您可以使用自訂 cron 作業來排程在縮放動作完成之後停用和啟用 WLM。 應該在縮放事件的實際排程之前停用 WLM,且應該在縮放事件後的 1 小時啟用。 使用者/管理員應該提出另一個 WLM 資源方案,以適合在縮放後的叢集大小。
5. 在縮放發生之後,為什麼在 Ambari UI 中看到過時的 Hive 設定?
Interactive Query 叢集每次縮放時,自動調整智慧探查會在 Ambari 中自動更新 LLAP 精靈數目和並行,因為這些設定都是靜態。 更新這些設定是為了確定自動調整是否處於停用狀態,或 LLAP 服務是否因故而重新啟動。 這樣會利用當時調整大小的所有背景工作節點。 不需要明確重新啟動服務來處理這些過時的設定變更。
後續步驟
如果上述指導方針無法解決您的查詢,請尋求下列其中一項。
透過 Azure 社群支援獲得由 Azure 專家所提供的解答。
與 @AzureSupport 連繫:專為改善客戶體驗而設的官方 Microsoft Azure 帳戶,可協助 Azure 社群連接至適當的資源,例如解答、支援及專家。
如果需要更多協助,您可在 Azure 入口網站提交支援要求。 從功能表列中選取 [支援] 或開啟 [說明 + 支援] 中樞。 如需詳細資訊,請參閱如何建立 Azure 支援要求。 您可透過 Microsoft Azure 訂閱來存取訂閱管理和帳單支援,並透過其中一項 Azure 支援方案以取得技術支援。