如何杀死 YARN 容器以测试失败场景

How do I kill a YARN container to test failure scenarios

我正在使用 YARN(和 Dask)版本 Hadoop 2.7.3-amzn-1 在 AWS EMR 上构建应用程序。我正在尝试测试各种故障场景,并且我想模拟容器故障。我似乎找不到一种简单的方法来杀死 YARN 容器——只有整个应用程序。是否有用于此的命令行实用程序?

YARN 没有终止容器的 CLI 或 REST API。

创建容器失败的最简单方法是登录到 NodeManager 主机并终止由 NodeManager 生成的进程(这将是一个容器)。

[root@node1 lillcol]# yarn container -help
20/04/24 15:04:14 INFO client.AHSProxy: Connecting to Application History server at node1/127.0.0.1:10200
usage: container
 -help                                     Displays help for all commands.
 -list <Application Attempt ID>            List containers for application
                                           attempt.
 -signal <container ID [signal command]>   Signal the container. The
                                           available signal commands are
                                           [OUTPUT_THREAD_DUMP,
                                           GRACEFUL_SHUTDOWN,
                                           FORCEFUL_SHUTDOWN] Default
                                           command is OUTPUT_THREAD_DUMP.
 -status <Container ID>                    Prints the status of the
                                           container.

通过命令yarn container -signal [container-ID] GRACEFUL_SHUTDOWN实现。

我已经尝试过并且 int 有效,希望对您有所帮助。

似乎从 2.8.0 版本开始在 API 中公开了 https://hadoop.apache.org/docs/r2.8.0/api/org/apache/hadoop/yarn/client/api/YarnClient.html#signalToContainer(org.apache.hadoop.yarn.api.records.ContainerId,%20org.apache.hadoop.yarn.api.records.SignalContainerCommand)