ПРЯЖА: Исключение из контейнера-код выхода запуска 127

#java #hadoop #hadoop-yarn

Вопрос:

Я пытаюсь представить teragen работу в YARN вот так:

 yarn jar $YARN_EXAMPLES/hadoop-mapreduce-examples-3.3.1.jar teragen 1000 /teragen  

Все идет хорошо, пока не произойдет ошибка:

 2021-11-04 23:45:20,540 INFO mapreduce.Job: Running job: job_1636069364859_0003 2021-11-04 23:45:25,629 INFO mapreduce.Job: Job job_1636069364859_0003 running in uber mode : false 2021-11-04 23:45:25,630 INFO mapreduce.Job: map 0% reduce 0% 2021-11-04 23:45:27,658 INFO mapreduce.Job: Task Id : attempt_1636069364859_0003_m_000000_0, Status : FAILED [2021-11-04 23:45:26.200]Exception from container-launch. Container id: container_1636069364859_0003_01_000002 Exit code: 127  [2021-11-04 23:45:26.201]Container exited with a non-zero exit code 127. Error file: prelaunch.err. Last 4096 bytes of prelaunch.err : Last 4096 bytes of stderr : /bin/bash: line 1: m: command not found  

Я понятия не имею, в чем проблема. Я пытался заглянуть в журналы, особенно в prelaunch.err файл, но он пуст. В stderr файле есть:

 /bin/bash: line 1: m: command not found  

Проверив журналы диспетчера узлов, я обнаружил следующее:

 2021-11-04 23:44:05,765 INFO org.apache.hadoop.metrics2.impl.MetricsSystemImpl: s3a-file-system metrics system started 2021-11-04 23:44:06,423 INFO org.apache.hadoop.yarn.server.nodemanager.containermanager.container.ContainerImpl: Container container_1636069364859_0001_01_000002 transitioned from LOCALIZING to SCHEDULED 2021-11-04 23:44:06,423 INFO org.apache.hadoop.yarn.server.nodemanager.containermanager.scheduler.ContainerScheduler: Starting container [container_1636069364859_0001_01_000002] 2021-11-04 23:44:06,453 INFO org.apache.hadoop.yarn.server.nodemanager.containermanager.container.ContainerImpl: Container container_1636069364859_0001_01_000002 transitioned from SCHEDULED to RUNNING 2021-11-04 23:44:06,453 INFO org.apache.hadoop.yarn.server.nodemanager.containermanager.monitor.ContainersMonitorImpl: Starting resource-monitoring for container_1636069364859_0001_01_000002 2021-11-04 23:44:06,457 INFO org.apache.hadoop.yarn.server.nodemanager.DefaultContainerExecutor: launchContainer: [bash, /opt/yarn/local/usercache/vagrant/appcache/application_1636069364859_0001/container_1636069364859_0001_01_000002/default_container_executor.sh] 2021-11-04 23:44:06,477 WARN org.apache.hadoop.yarn.server.nodemanager.DefaultContainerExecutor: Exit code from container container_1636069364859_0001_01_000002 is : 127 2021-11-04 23:44:06,478 WARN org.apache.hadoop.yarn.server.nodemanager.DefaultContainerExecutor: Exception from container-launch with container ID: container_1636069364859_0001_01_000002 and exit code: 127 ExitCodeException exitCode=127:   at org.apache.hadoop.util.Shell.runCommand(Shell.java:1008)  at org.apache.hadoop.util.Shell.run(Shell.java:901)  at org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:1213)  at org.apache.hadoop.yarn.server.nodemanager.DefaultContainerExecutor.launchContainer(DefaultContainerExecutor.java:309)  at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.launchContainer(ContainerLaunch.java:585)  at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:373)  at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:103)  at java.util.concurrent.FutureTask.run(FutureTask.java:266)  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)  at java.lang.Thread.run(Thread.java:748) 2021-11-04 23:44:06,479 INFO org.apache.hadoop.yarn.server.nodemanager.ContainerExecutor: Exception from container-launch. 2021-11-04 23:44:06,479 INFO org.apache.hadoop.yarn.server.nodemanager.ContainerExecutor: Container id: container_1636069364859_0001_01_000002 2021-11-04 23:44:06,479 INFO org.apache.hadoop.yarn.server.nodemanager.ContainerExecutor: Exit code: 127 2021-11-04 23:44:06,479 WARN org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch: Container launch failed : Container exited with a non-zero exit code 127.  2021-11-04 23:44:06,501 INFO org.apache.hadoop.yarn.server.nodemanager.containermanager.container.ContainerImpl: Container container_1636069364859_0001_01_000002 transitioned from RUNNING to EXITED_WITH_FAILURE 2021-11-04 23:44:06,503 INFO org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerCleanup: Cleaning up container container_1636069364859_0001_01_000002 2021-11-04 23:44:06,515 INFO org.apache.hadoop.metrics2.impl.MetricsSystemImpl: Stopping s3a-file-system metrics system... 2021-11-04 23:44:06,515 INFO org.apache.hadoop.metrics2.impl.MetricsSystemImpl: s3a-file-system metrics system stopped. 2021-11-04 23:44:06,515 INFO org.apache.hadoop.metrics2.impl.MetricsSystemImpl: s3a-file-system metrics system shutdown complete. 2021-11-04 23:44:06,525 INFO org.apache.hadoop.yarn.server.nodemanager.DefaultContainerExecutor: Deleting absolute path : /opt/yarn/local/usercache/vagrant/appcache/application_1636069364859_0001/container_1636069364859_0001_01_000002 2021-11-04 23:44:06,526 INFO org.apache.hadoop.yarn.server.nodemanager.containermanager.container.ContainerImpl: Container container_1636069364859_0001_01_000002 transitioned from EXITED_WITH_FAILURE to DONE 2021-11-04 23:44:06,526 INFO org.apache.hadoop.yarn.server.nodemanager.containermanager.application.ApplicationImpl: Removing container_1636069364859_0001_01_000002 from application application_1636069364859_0001 2021-11-04 23:44:06,526 INFO org.apache.hadoop.yarn.server.nodemanager.containermanager.monitor.ContainersMonitorImpl: Stopping resource-monitoring for container_1636069364859_0001_01_000002  

Я читал другие ответы, и когда они упоминают, что Java отсутствует или JAVA_HOME не установлена. Это не мое дело, я JAVA_HOME настроен на /usr/lib/jvm/java-8-openjdk-amd64 это .

Есть идеи, что здесь может происходить? Спасибо 🙂

Комментарии:

1. В скрипте есть ошибка… line 1: m: command not found это от bash, не имеющая ничего общего с Hadoop

2. Эй, @OneCricketeer, на самом деле это была ошибка конфигурации памяти. По какой-то причине что-то не «жило» достаточно долго, чтобы на самом деле опубликовать проблему размера кучи. После того, как несколько контейнеров вышли из строя и предприняли повторную попытку выполнить задание, я в конце концов справился с проблемой. Я собирался опубликовать решение через секунду.

Ответ №1:

Проблема заключалась в памяти, выделенной для каждого контейнера. По-видимому, некоторые контейнеры жили недостаточно долго, чтобы на самом деле зарегистрировать ошибку.

Но после нескольких попыток я действительно получил ошибку, которая выглядела так:

 Error occurred during initialization of VM Too small initial heap  

По какой-то причине конфигурация памяти для заданий YARN и MapReduce, которую я использовал, была неправильной. В итоге я использовал HDP от Ambari yarn-util.py , чтобы получить соответствующие значения для моей настройки.