Hadoop YARN:如何强制将节点标记为 "LOST" 而不是 "SHUTDOWN"?
Hadoop YARN: How to force a Node to be Marked "LOST" instead of "SHUTDOWN"?
我正在对节点丢失时发生的 YARN 应用程序故障进行故障排除,因此我正在尝试重新创建此场景。但我只能强制节点关闭而不是丢失。我正在使用 AWS EMR,我已经尝试过:
- 登录节点并执行
shutdown -h now
- 登录到节点并执行
sudo stop hadoop-yarn-nodemanager
和 sudo stop hadoop-hdfs-datanode
- 用
kill -9 <pid>
杀死 NodeManager
那些会导致关闭节点但不会丢失节点。
如何在 AWS EMR 中创建 LOST 节点?
NodeManager is LOST
意味着 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
我正在对节点丢失时发生的 YARN 应用程序故障进行故障排除,因此我正在尝试重新创建此场景。但我只能强制节点关闭而不是丢失。我正在使用 AWS EMR,我已经尝试过:
- 登录节点并执行
shutdown -h now
- 登录到节点并执行
sudo stop hadoop-yarn-nodemanager
和sudo stop hadoop-hdfs-datanode
- 用
kill -9 <pid>
杀死 NodeManager
那些会导致关闭节点但不会丢失节点。
如何在 AWS EMR 中创建 LOST 节点?
NodeManager is LOST
意味着 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