2010-01-19 29 views
10

Cuando ejecuto un programa mapreduce utilizando Hadoop, aparece el siguiente error.Error en Hadoop MapReduce

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 

¿Qué es este error?

Respuesta

14

Una razón por la que Hadoop produce este error es cuando el directorio que contiene los archivos de registro se llena demasiado. Este es un límite de Ext3 Filesystem que solo permite un máximo de 32000 enlaces por inode.

Comprobar cómo llena los registros de su directorio está en hadoop/userlogs

Una prueba simple para este problema es simplemente tratar de crear un directorio desde la línea de comandos, por ejemplo: $ mkdir hadoop/userlogs/testdir

Si usted tiene demasiados directorios en los userlogs, el sistema operativo no debería crear el directorio e informar que hay demasiados.

+0

esta respuesta salvó mi día! –

+0

Un millón de gracias. No podía entender, también, lo que estaba pasando. – Adama

2

Estaba teniendo el mismo problema cuando me quedo sin espacio en el disco con el directorio de registro.

2

Otra causa puede ser, error de JVM cuando intenta asignar un espacio dedicado a JVM y no está presente en su máquina.

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 

Solución: Reemplazar -Xmx con valor de memoria dedicada que puede proporcionar a JVM en su máquina (por ejemplo, "-Xmx1024m")

+0

gracias, ¿fue un problema para mí – BraginiNI

0

Si crea un archivo jar ejecutable en eclipse, que da ese error en el sistema hadoop. Deberías extraer la parte ejecutable. Eso resolvió mi problema.

+0

? ¿puedes explicar? – sharafjaffri

2

Aumente su ulimit a un número ilimitado. o solución alternativa reducir la memoria asignada.

+1

¿Le gustaría explicar por qué o dar algunas referencias? – everton

+0

Para aumentar el ulimit: si tiene mucha memoria y asigna memoria limitada a JVM y está reteniendo muchos datos en la memoria, la JVM fallará. Si no tienes mucha memoria y debido a una mala configuración, terminaste asignando mucha memoria para que puedas obtener esto. Se produjo un error durante la inicialización de la máquina virtual. No se pudo reservar suficiente espacio para el montón de objetos. – user1989252

Cuestiones relacionadas