我正在对节点丢失时发生的YARN应用程序故障进行故障排除,因此我正在尝试重新创建此场景。但是我只能强制节点SHUTDOWN而不是LOST。我正在使用AWS EMR,我尝试过:
- 登录到一个节点并执行
shutdown -h now
- 登录到一个节点并执行
sudo stop hadoop-yarn-nodemanager
和sudo 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