告警解釋
系統每30秒周期性檢測NameNode的RPC隊列平均時間,并把實際的NameNode的RPC隊列平均時間和閾值(默認為200ms)相比較。當檢測到NameNode的RPC隊列平均時間連續多次(默認為10次)超出閾值范圍時,產生該告警。
用戶可通過“運維 > 告警 > 閾值設置 > 待操作集群的名稱 > HDFS”修改閾值。
如果平滑次數為1,NameNode的RPC隊列平均時間小于或等于閾值時,告警恢復;如果平滑次數大于1,NameNode的RPC隊列平均時間小于或等于閾值的90%時,告警恢復。
告警屬性
| 告警ID | 告警級別 | 是否自動清除 |
|---|---|---|
| 14022 | 重要 | 是 |
告警參數
| 參數名稱 | 參數含義 |
|---|---|
| 來源 | 產生告警的集群名稱。 |
| 服務名 | 產生告警的服務名稱。 |
| 角色名 | 產生告警的角色名稱。 |
| 主機名 | 產生告警的主機名。 |
| NameService名 | 產生告警的NameService名稱。 |
| Trigger condition | 系統當前指標取值滿足自定義的告警設置條件。 |
對系統的影響
NameNode無法及時處理來自HDFS客戶端、依賴于HDFS的上層服務、DataNode等的RPC請求,表現為訪問HDFS服務的業務運行緩慢,嚴重時會導致HDFS服務不可用。
可能原因
- NameNode節點的CPU性能不足,導致NameNode無法及時處理消息。
- NameNode所設置的內存太小,頻繁Full GC造成JVM卡頓。
- NameNode配置參數不合理,導致NameNode無法充分利用機器性能。
- HDFS的業務訪問量太大,超過了NameNode的負載能力。
處理步驟
獲取該告警的信息
1.在FusionInsight Manager首頁,選擇“運維 > 告警 > 告警”,在告警列表中找到該告警。
2.單擊該告警,查看下面的告警詳情。從“產生時間”可知該告警的觸發時間;從“定位信息”中的“主機名”信息可知發出該告警的NameNode節點主機名;從“定位信息”中的NameServiceName信息可知發出該告警的NameService名稱。
查看是否閾值設置過低
3.查看依賴于HDFS的業務的運行狀態是否正常運行。查看是否存在運行慢、執行任務超時的情況。
- 是,執行步驟8。
- 否,執行步驟4。
4.在FusionInsight Manager首頁,選擇“集群 > 待操作集群的名稱 > 服務 > HDFS”,單擊圖表區域右上角的下拉菜單,單擊“定制”,在彈出的對話框中選擇“主NameNode RPC隊列平均時間”,單擊“確定”。
5.查看“主NameNode RPC隊列平均時間”監控中,獲取發出告警的NameService的當前的監控值。
6.在FusionInsight Manager首頁,選擇“運維 > 告警 > 閾值設置 > 待操作集群的名稱 > HDFS”,找到“主NameNode RPC隊列平均時間”,單擊default規則中“操作”欄中的“修改”,修改“閾值”為當前監控值的150%。單擊“確定”,保存新閾值。
7.等待1分鐘,查看該告警是否自動消除。
- 是,處理結束。
- 否,執行步驟8。
查看NameNode節點的CPU性能是否不足
8.在FusionInsight Manager首頁,選擇“運維 > 告警 > 告警”,查看該NameNode節點是否有“ALM-12016 CPU使用率超過閾值”告警。
- 是,執行步驟9。
- 否,執行步驟11。
9.按照“ALM-12016 CPU使用率超過閾值”告警處理文檔,處理該告警。
10.處理完12016告警后,等待10分鐘,查看14022告警是否自動消除。
- 是,處理結束。
- 否,執行步驟11。
查看NameNode節點的內存是否設置過小
11.在FusionInsight Manager首頁,選擇“運維 > 告警 > 告警”,查看是否有該NameNode節點的“ALM-14007 HDFS NameNode堆內存使用率超過閾值”告警。
- 是,執行步驟12。
- 否,執行步驟14。
12.按照“ALM-14007 HDFS NameNode堆內存使用率超過閾值”告警處理文檔,處理該告警。
13.處理完14007告警后,等待10分鐘,查看14022告警是否自動消除。
- 是,處理結束。
- 否,執行步驟14。
查看該NameNode配置參數是否合理
14.在FusionInsight Manager首頁,選擇“集群 > 待操作集群的名稱 > 服務 > HDFS > 配置”,搜索配置項“dfs.namenode.handler.count”,查看其值。如果值小于或等于128,則設置為128;如果大于128但小于192,則設置為192。
15.搜索配置項“ipc.server.read.threadpool.size”,查看其值。如果值小于5,則設置為5。
16.單擊“保存”,單擊“確定”。
17.在HDFS的“實例”頁面,先勾選發出該告警的NameService的備NameNode,在“更多”中單擊“重啟實例”,輸入密碼后單擊“確定”,等待備NameNode啟動完畢。
18.在HDFS的“實例”頁面,先勾選發出該告警的NameService的主NameNode,在“更多”中單擊“重啟實例”,輸入密碼后單擊“確定”,等待主NameNode啟動完畢。
19.等待1小時,查看該告警是否自動消除。
- 是,處理結束。
- 否,執行步驟20。
查看HDFS負載變化情況,適當降低HDFS負載
20.在FusionInsight Manager首頁,選擇“集群 > 待操作集群的名稱 > 服務 > HDFS”,單擊圖表區域右上角的下拉菜單,選擇“定制”,單擊“RPC”,在彈出的對話框中選擇“NameNode RPC隊列平均時間”,單擊“確定”。
21.單擊
,進入監控詳細信息界面。
22.設置監控顯示的時間段,從告警產生的時間的前5天開始,到告警產生時刻結束。單擊“確定”按鈕。
23.在“NameNode RPC隊列平均時間”監控中,查看該監控是否有開始急劇增加的時間點。
- 是,執行步驟24。
- 否,執行步驟27。
24.確認并排查在該時間點,是否有新增任務大量訪問HDFS,確認該任務是否可以調優,減少對HDFS的訪問。
25.如果在該時間點有執行Balancer,則可以停止Balancer,或指定節點執行Balancer任務,來降低對HDFS的負載。
26.等待1小時,查看該告警是否自動消除。
- 是,處理結束。
- 否,執行步驟27。
收集故障信息
27.在FusionInsight Manager首頁,選擇“運維 > 日志 > 下載”。
28.在“服務”勾選待操作集群的HDFS節點信息。
29.單擊右上角的
設置日志收集的“開始時間”和“結束時間”分別為告警產生時間的前后10分鐘,單擊“下載”。
30.請聯系運維人員,并發送已收集的故障日志信息。
告警清除
此告警修復后,系統會自動清除此告警,無需手工清除。
參考信息
無。