Программа Hadoop mapreduce не работает с кодом выхода 127

Tyring запустить некоторую программу hadoop. Я вижу, что NameNode, Datanode, URL-адрес кластера Yarn запущены и работают. то есть 127.0.0.1:50070 /dfshealth.jsp, localhost: 8088 / cluster / cluster и т. д.

Но когда я пытаюсь запустить свою программу mapreduce как: $ hadoop MySampleProgram hdfs: //localhost/user/cyg_server/input/myfile.txt hdfs: // localhost / user / cyg_server / output / op

Программа выходит из строя с логами:

INFO mapreduce.Job (Job.java:monitorAndPrintJob(1295)) - карта 0% уменьшить 0%

INFO mapreduce.Job (Job.java:monitorAndPrintJob(1308)) - задание job_1354496967950_0003 завершилось неудачно с состоянием FAILED из-за: Application application_1354496967950_0003 не удалось 1 раз из-за контейнера AM для приложения. приложение.

2012-12-03 07: 29: 50,544 INFO mapreduce.Job (Job.java:monitorAndPrintJob(1313)) - Счетчиков: 0

Когда я просмотрел некоторые журналы, я заметил следующее: nodemanager.DefaultContainerExecutor (DefaultContainerExecutor.java:launchContainer(193)) - Код выхода из задачи: 127

Я работаю в Windows 7 с cygwin.

Любой вклад приветствуется.

::: ДОБАВЛЕНИЕ ДОПОЛНИТЕЛЬНОЙ ИНФОРМАЦИИ ЗДЕСЬ ::: На данный момент я вижу, что следующий источник хадупа во время выполнения [попытка установить контейнер запуска] не работает ... Я добавляю исходный URL-адрес для этого файла здесь .... (обратите внимание, что это не ошибка hadoop, но я указываю, но кое-что мне не хватает) .... Класс: DefaultContainerExecutor Метод: launchContainer Lines: от начала метода launchContainer до 195, где он печатает код .

http://grepcode.com/file/repo1.maven.org/maven2/org.apache.hadoop/hadoop-yarn-server-nodemanager/0.23.1/org/apache/hadoop/yarn/server/nodemanager/DefaultContainerExecutor.java#193

ВЫПИСКА ИЗ ЖУРНАЛА УПРАВЛЯЮЩЕГО УЗЛА

INFO nodemanager.DefaultContainerExecutor (DefaultContainerExecutor.java:launchContainer(175)) - launchContainer: [bash, /tmp/nm-local-...2936_0003/container_1354566282936_0003_01_000001/default_container_executer_executer

WARN nodemanager.DefaultContainerExecutor (DefaultContainerExecutor.java:launchContainer(193)) - Код выхода из задачи: 127

INFO nodemanager.ContainerExecutor (ContainerExecutor.java:logOutput(167)) -

WARN launcher.ContainerLaunch (ContainerLaunch.java:call(274)) - Контейнер завершен с ненулевым кодом выхода 127

Спасибо, Хари


person hbr    schedule 03.12.2012    source источник
comment
Простое размещение вашего старого вопроса в новом не означает, что он подойдет лучше. Посмотрите, что вызывает код выхода 127 на вашей платформе, а затем ответьте на КОНКРЕТНЫЙ вопрос.   -  person Thomas Jungblut    schedule 03.12.2012
comment
Я его переформатировал и стал более читабельным. Я не уверен, что вызывает код выхода 127. Собственно, поэтому я публикую здесь этот вопрос. Я бы обязательно добавил больше информации, если смогу.   -  person hbr    schedule 03.12.2012
comment
Дело в том, что Exit Code 127 может быть вызван чем угодно. Поэтому вам нужно предоставить либо некоторые данные журнала, либо метрики вашего ПК.   -  person Thomas Jungblut    schedule 03.12.2012
comment
Статус выхода 127 bash показывает, что команда не найдена. Попробуйте запустить bash /tmp/nm-local-*2936_0003/container_1354566282936_0003_01_000001/default_container_executor.sh вручную.   -  person pensz    schedule 04.12.2012
comment
pensz: спасибо, это то, что я пытаюсь понять. Но эта программа при выходе очищает весь каталог tmp, включая этот файл .sh. Итак, пытаюсь понять, могу ли я что-то сделать, чтобы сохранить этот сценарий в этом файле .sh.   -  person hbr    schedule 04.12.2012
comment
до сих пор не смог найти для этого причины. Поскольку default_containe‌r_executor удаляется немедленно. Однако я переключил свой hadoop из режима псевдораспределения в режим StandAlone, и он работал нормально. Примечание: это не исправление. Но это просто работа, чтобы запустить мою программу MR Hadoop. Я думаю, что есть некоторая конфигурация или настройка, которую я пропустил или неправильно настроил, что является причиной этого. Я оставлю это открытым и обновлю его ... если я что-то найду в будущем ... или кто-нибудь, я думаю!   -  person hbr    schedule 05.12.2012


Ответы (2)


Жесткое кодирование домашнего пути java внутри hadoop-env.sh решило проблему для меня следующим образом:

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_91.jdk/Contents/Home
person KayV    schedule 06.06.2017
comment
Я встретил ту же проблему. Это решение работает. Большое спасибо! - person mathsyouth; 07.09.2017

Я столкнулся с этой проблемой, когда пытался использовать библиотеки, которые не включены в стандартный дистрибутив Hadoop (org.apache.lucene в моем случае). Решением было добавить недостающие библиотеки в путь к классам пряжи, используя свойство конфигурации "yarn.application.classpath":

    String cp = conf.get("yarn.application.classpath");
    String home=System.getenv("HOME");
    cp+=","+home+"/" + ".m2/repository/org/apache/lucene/lucene-core/4.4.0/*";
    cp+=","+home+"/" + ".m2/repository/org/apache/lucene/lucene-analyzers/4.4.0/*";
    cp+=","+home+"/" + ".m2/repository/org/apache/lucene/lucene-analyzers-common/4.4.0/*";
    conf.set("yarn.application.classpath", cp);
person Yevgen Yampolskiy    schedule 21.02.2014