ALM-18020 Yarn任务执行超时
告警解释
系统每15分钟周期性检测提交到Yarn上的Mapreduce和Spark应用任务(JDBC常驻任务除外),当检测到任务执行时间超过用户指定的超时时间时,产生该告警,但任务仍继续正常执行。其中,Mapreduce的客户端超时参数为“mapreduce.application.timeout.alarm”,Spark的客户端超时参数为“spark.application.timeout.alarm”(单位:毫秒)。
当该任务结束或者任务被终止后,该告警会自动清除。
告警属性
告警ID |
告警级别 |
是否自动清除 |
---|---|---|
18020 |
次要 |
是 |
告警参数
参数名称 |
参数含义 |
---|---|
来源 |
产生告警的集群名称。 |
服务名 |
产生告警的服务名称。 |
角色名 |
产生告警的角色名称。 |
应用名 |
产生告警的应用名。 |
Trigger Condition |
系统当前指标取值满足自定义的告警设置条件。 |
对系统的影响
任务执行超时后的运行时间内,该告警一直存在,但任务仍继续正常执行,没有任何影响。
可能原因
- 指定的超时时间少于所需执行时间。
- 任务运行的队列资源不足。
- 任务数据倾斜,导致一些任务处理的数据量大,执行时间长。
处理步骤
检查超时时间是否正确设置。
- 在FusionInsight Manager首页,选择“运维 > 告警 > 告警”,弹出告警页面。
- 在告警页面,选中“告警ID”为“18020”的告警,在该页面的告警详情里查看“定位信息”,查看超时任务的名称和超时时间。
- 根据任务名称和超时时间,选择“集群 > 待操作集群的名称 > 服务 > Yarn > ResourceManager(主)”,登录Yarn的原生页面。在原生页面找到该任务,查看该任务的“StartTime”,根据系统当前时间计算任务已执行的时间。查看已执行的时间是否大于超时时间。
- 请根据业务合理评估任务的预期执行时间,并与任务的超时时间对比。若超时时间设置过小,请设置客户端的超时时间(“mapreduce.application.timeout.alarm”或“spark.application.timeout.alarm”)为任务的预期执行时间。重新运行任务后,查看是否不再上报告警。
- 是,处理完毕。
- 否,执行5。
检查队列资源是否不足。
- 在原生页面找到该任务,查看该任务的“Queue”中的队列名。单击原生页面左侧“Scheduler”,在“Applications Queues”页框中查找对应的队列名,并下拉展开队列的详细信息,如图所示:
- 查看队列详情中“Used Resources”是否近似等于“Max Resources”,即任务提交的队列中资源已经使用完毕,若队列资源不足,请在FusionInsight Manager的“租户资源 > 动态资源计划 > 资源分布策略”中调大队列的“最大资源”。重新运行任务后,查看是否不再上报告警。
- 是,处理完毕。
- 否,执行7。
检查任务是否发生数据倾斜。
- 在Yarn的原生页面,选择“任务ID(如application_1565337919723_0002) > Tracking URL:ApplicationMaster > job_1565337919723_0002”,进入如下页面:
- 选择左侧“Job > Map tasks”或者“Job > Reduce tasks”,查看每个Map或者每个Reduce任务的执行时间是否相差很大,如果相差很大,说明任务数据发生了倾斜,需要对任务数据进行均衡。
- 按照如上原因进行处理后,重新执行任务,观察本告警是否还出现。
- 是,执行10。
- 否,处理完毕。
收集故障信息
告警清除
此告警修复后,系统会自动清除此告警,无需手工清除。
参考信息
无。