更新时间:2022-12-14 GMT+08:00

基于分区的任务黑名单

问题

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,大于黑名单节点释放阈值,节点被释放。

因此即使故障节点数与集群总节点数的比值没有超过阈值,也存在黑名单将这些节点释放的情况。