Hadoop YARN:如何强制将节点标记为"LOST"而不是"SHUTDOWN"?



我正在对节点丢失时发生的YARN应用程序故障进行故障排除,因此我正在尝试重新创建此场景。但是我只能强制节点SHUTDOWN而不是LOST。我正在使用AWS EMR,我尝试过:

  • 登录到一个节点并执行shutdown -h now
  • 登录到一个节点并执行sudo stop hadoop-yarn-nodemanagersudo stop hadoop-hdfs-datanode
  • kill -9 <pid>杀死NodeManager

这些会导致SHUTDOWN节点,但不会导致LOST节点。

如何在AWS EMR中创建LOST节点?

NodeManager isLOST表示ResourceManager在nm.liveness-monitor.expiry-interval-ms毫秒(默认为10分钟)的持续时间内没有收到它的心跳。您可能想要尝试阻止从NM节点到RM的IP(或者如果RM节点运行多个服务,则只是端口)的出站流量,但我不确定如何在AWS中实现这一点。可以使用iptables,例如:

iptables -A OUTPUT -p tcp -d <RM's IP> --dport <RM's port> -j DROP

正如我在评论中建议的那样,在节点上降低接口会导致节点丢失的情况,例如:

ifconfig eth0 down