
# 基于分区的任务黑名单异常如何处理
#### 问题
Map\&Reduce任务失败，并且故障节点数与集群总节点数的比值低于"yarn.resourcemanager.am-scheduling.node-blacklisting-disable-threshold"配置的黑名单阈值，为什么Map\&Reduce任务故障节点没有加入黑名单？
#### 回答
当集群中有超过阈值的节点都被加入黑名单时，黑名单会释放这些节点，其中阈值为故障节点数与集群总节点数的比值。现在每个节点都有其标签表达式，黑名单阈值应根据有效节点标签表达式关联的节点数进行计算，其值为故障节点数与有效节点标签表达式关联的节点数的比值。
假设集群中有100个节点，其中有10个节点为有效节点标签表达式关联的节点（labelA）。其中所有有效节点标签表达式关联的节点都已经故障，黑名单节点释放阈值默认值为0.33，按照传统的计算方式，10/100=0.1，远小于该阈值。这就造成这10个节点永远无法得到释放，Map\&Reduce任务一直无法获取节点，应用程序无法正常运行。实际需要根据与Map\&Reduce任务的有效节点关联的节点总数进行计算，即10/10=1，大于黑名单节点释放阈值，节点被释放。
因此即使故障节点数与集群总节点数的比值没有超过阈值，也存在黑名单将这些节点释放的情况。
