告警解释
系统每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.请联系运维人员,并发送已收集的故障日志信息。
告警清除
此告警修复后,系统会自动清除此告警,无需手工清除。
参考信息
无。