告警解釋
系統每15分鐘周期性檢測提交到Yarn上的Mapreduce和Spark應用任務(JDBC常駐任務除外),當檢測到任務執行時間超過用戶指定的超時時間時,產生該告警,但任務仍繼續正常執行。其中,Mapreduce的客戶端超時參數為“mapreduce.application.timeout.alarm”,Spark的客戶端超時參數為“spark.application.timeout.alarm”(單位:毫秒)。
當該任務結束或者任務被終止后,該告警會自動清除。
告警屬性
| 告警ID | 告警級別 | 是否自動清除 |
|---|---|---|
| 18020 | 次要 | 是 |
告警參數
| 參數名稱 | 參數含義 |
|---|---|
| 來源 | 產生告警的集群名稱。 |
| 服務名 | 產生告警的服務名稱。 |
| 角色名 | 產生告警的角色名稱。 |
| 應用名 | 產生告警的應用名。 |
| Trigger Condition | 系統當前指標取值滿足自定義的告警設置條件。 |
對系統的影響
任務執行超時后的運行時間內,該告警一直存在,但任務仍繼續正常執行,沒有任何影響。
可能原因
- 指定的超時時間少于所需執行時間。
- 任務運行的隊列資源不足。
- 任務數據傾斜,導致一些任務處理的數據量大,執行時間長。
處理步驟
檢查超時時間是否正確設置
1.在FusionInsight Manager首頁,選擇“運維 > 告警 > 告警”,彈出告警頁面。
2.在告警頁面,選中“告警ID”為“18020”的告警,在該頁面的告警詳情里查看“定位信息”,查看超時任務的名稱和超時時間。
3.根據任務名稱和超時時間,選擇“集群 > 待操作集群的名稱 > 服務 > Yarn > ResourceManager(主)”,登錄Yarn的原生頁面。在原生頁面找到該任務,查看該任務的“StartTime”,根據系統當前時間計算任務已執行的時間。查看已執行的時間是否大于超時時間。
- 是,執行步驟5。
- 否,執行步驟10。
4.請根據業務合理評估任務的預期執行時間,并與任務的超時時間對比。若超時時間設置過小,請設置客戶端的超時時間(“mapreduce.application.timeout.alarm”或“spark.application.timeout.alarm”)為任務的預期執行時間。重新運行任務后,查看是否不再上報告警。
- 是,處理完畢。
- 否,執行步驟5。
檢查隊列資源是否不足
5.在原生頁面找到該任務,查看該任務的“Queue”中的隊列名。單擊原生頁面左側“Scheduler”,在“Applications Queues”頁框中查找對應的隊列名,并下拉展開隊列的詳細信息,如圖所示:


6.查看隊列詳情中“Used Resources”是否近似等于“Max Resources”,即任務提交的隊列中資源已經使用完畢,若隊列資源不足,請在FusionInsight Manager的“租戶資源 > 動態資源計劃 > 資源分布策略”中調大隊列的“最大資源”。重新運行任務后,查看是否不再上報告警。
- 是,處理完畢。
- 否,執行步驟7。
檢查任務是否發生數據傾斜
7.在Yarn的原生頁面,選擇“任務 ID (如application_1565337919723_0002) > Tracking URL:ApplicationMaster > job_1565337919723_0002”,進入如下頁面:


8.選擇左側“Job > Map tasks”或者“Job > Reduce tasks”,查看每個Map或者每個Reduce任務的執行時間是否相差很大,如果相差很大,說明任務數據發生了傾斜,需要對任務數據進行均衡。
9.按照如上原因進行處理后,重新執行任務,觀察本告警是否還出現。
- 是,執行步驟10。
- 否,處理完畢。
收集故障信息
10.在FusionInsight Manager界面,選擇“運維 > 日志 > 下載”。
11.在“服務”中勾選待操作集群的“Yarn”。
12.單擊右上角的
設置日志收集的“開始時間”和“結束時間”分別為告警產生時間的前后10分鐘,單擊“下載”。
13.請聯系運維人員,并發送已收集的故障日志信息。
告警清除
此告警修復后,系統會自動清除此告警,無需手工清除。
參考信息
無。