Как убить контейнер YARN для тестирования сценариев сбоя
Я создаю приложение на AWS EMR, используя версию Hadoop 2.7.3-amzn-1 от YARN (и Dask). Я пытаюсь протестировать различные сценарии сбоя и хочу смоделировать сбой контейнера. Кажется, я не могу найти простой способ уничтожить контейнер YARN - только целое приложение. Есть ли утилита командной строки для этого?
1 ответ
У YARN нет API CLI или REST, который убивает контейнер.
Самый простой способ создать сбой контейнера - войти на хост 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 работает, надеюсь, это будет полезно.
Похоже, что он доступен в API начиная с версии 2.8.0https://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)