
# Superior调度模式下，单个NodeManager故障可能导致MapReduce任务失败
#### 问题
在Superior调度模式下，如果出现单个NodeManager故障，可能会导致Mapreduce任务失败。
#### 回答
正常情况下 ，当一个application的单个task的attempt连续在一个节点上失败3次，那么该application的AppMaster就会将该节点加入黑名单，之后AppMaster就会通知调度器不要继续调度task到该节点，从而避免任务失败。
但是默认情况下，当集群中有33%的节点都被加入黑名单时，调度器会忽略黑名单节点。因此，该黑名单特性在小集群场景下容易失效。比如，集群只有3个节点，当1个节点出现故障，黑名单机制失效，不管task的attempt在同一个节点失败多少次，调度器仍然会将task继续调度到该节点，从而导致application因为task失败达到最大attempt次数（MapReduce默认4次）而失败。
规避手段：
在"*客户端安装路径*/Yarn/config/yarn-site.xml"文件中修改"yarn.resourcemanager.am-scheduling.node-blacklisting-disable-threshold"参数以百分比的形式配置忽略黑名单节点的阈值。建议根据集群规模，适当增大该参数的值，如3个节点的集群， 建议增大到50%。
![](https://support.huaweicloud.com/cmpntguide-mrs/public_sys-resources/note_3.0-zh-cn.png)
Superior调度器的框架设计是基于时间的异步调度，当NodeManager故障后，ResourceManager无法快速地感知到NodeManager已经出了问题(默认10mins)，因此在此期间，Superior调度器仍然会向该节点调度task，从而导致任务失败。
