記一Hive執行Job掛起(Accepted狀態)的異常處理

問題

  1. 出現Hive執行select count(*) from ……語句時,任務長時間不運行
  2. 在Yarn界面觀察任務狀態一直是Accepted狀態
  3. Hive使用tez引擎啓動時掛起,使用beeline鏈接後執行count報錯
  4. 此時集羣還有不少內存和CPU資源空閒!

定位

查看Yarn UI界面的日誌,有以下提示:bash

Diagnostics:Application is added to the scheduler and is not yet activated. 
Queue's AM resource limit exceeded. Details : AM Partition = <DEFAULT_PARTITION>; AM Resource Request = <memory:9216MB(9G), vCores:1>; Queue Resource Limit for AM = <memory:454656MB(444G), vCores:1>; User AM Resource Limit of the queue = <memory:229376MB(224G), vCores:1>; Queue AM Resource Usage = <memory:221184MB(216G), vCores:24>; 複製代碼

說明任務被提交到調度器,但ApplicationMaster申請的資源超過了上限,剩餘可用資源不足以啓動AM,所以程序處於掛起狀態,不能運行。spa

  • 觸發資源上限的多是內存,或虛擬核數(vCores)以及兩者均有,分析時可注意甄別。

解決方案

調大AM資源百分比

maximum-am-resource-percent:集羣中用於運行應用程序ApplicationMaster的資源比例上限,該參數一般用於限制處於活動狀態的應用程序數目。該參數類型爲浮點型,我這默認是20%。全部隊列的ApplicationMaster資源比例上限可經過參數yarn.scheduler.capacity. maximum-am-resource-percent設置,而單個隊列可經過參數yarn.scheduler.capacity.. maximum-am-resource-percent設置適合本身的值。通常不要超過50%。日誌

若是是HDP用戶code

使用Ambari修改 Maximum AM Resource

結語

這個問題不常遇到,通常只有在Yarn正在運行不少任務時出現,記錄在此。但致使Yarn任務掛起,一直Accepted狀態的緣由不必定是這個。cdn

爲使本問題容更容易被搜索到,以上內容涉及:blog

  • Application Master申請不到資源隊列

  • 提交了Yarn任務以後沒有分配資源內存

  • Queue AM Resource Usage,Queue's AM resource limit exceeded.ci

  • 修改集羣用於運行應用程序ApplicationMaster的資源比例上限資源

  • yarn.scheduler.capacity.maximum-am-resource-percent調整

  • 任務處於 Accepted 狀態,但集羣還有可用資源

    週末愉快~
    複製代碼
相關文章
相關標籤/搜索