Ошибка в Hadoop MapReduce

Когда я запускаю программу mapreduce с помощью Hadoop, я получаю следующую ошибку.

10/01/18 10:52:48 INFO mapred.JobClient: Task Id : attempt_201001181020_0002_m_000014_0, Status : FAILED
  java.io.IOException: Task process exit with nonzero status of 1.
    at org.apache.hadoop.mapred.TaskRunner.run(TaskRunner.java:418)
10/01/18 10:52:48 WARN mapred.JobClient: Error reading task outputhttp://ubuntu.ubuntu-domain:50060/tasklog?plaintext=true&taskid=attempt_201001181020_0002_m_000014_0&filter=stdout
10/01/18 10:52:48 WARN mapred.JobClient: Error reading task outputhttp://ubuntu.ubuntu-domain:50060/tasklog?plaintext=true&taskid=attempt_201001181020_0002_m_000014_0&filter=stderr

Что это за ошибка?

Ответ 1

Одна из причин, по которой Hadoop производит эту ошибку, - это когда каталог, содержащий файлы журнала, становится слишком полным. Это предел Ext3 Файловая система, который разрешает максимум 32000 ссылок на каждый индекс.

Проверьте, как полный каталог журналов находится в hadoop/userlogs

Простой тест для этой проблемы - просто попытаться создать каталог из командной строки, например: $ mkdir hadoop/userlogs/testdir

Если у вас слишком много каталогов в пользовательских логах, ОС не сможет создать каталог и сообщить, что их слишком много.

Ответ 2

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

Ответ 3

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

sample code:
conf.set("mapred.child.java.opts", "-Xmx4096m");

Error message:
Error occurred during initialization of VM
Could not reserve enough space for object heap

Решение: замените -Xmx на выделенное значение памяти, которое вы можете предоставить JVM на вашем компьютере (например, "-Xmx1024m" )

Ответ 4

Увеличьте свой ulimit до неограниченного. или альтернативное решение уменьшают выделенную память.

Ответ 5

Если вы создаете файл runnable jar в eclipse, он дает эту ошибку в системе hadoop. Вы должны извлечь runnable часть. Это решило мою проблему.