2012-06-25 8 views
38

que estoy recibiendo:¿Cuál es la colmena: Código de retorno de 2 org.apache.hadoop.hive.ql.exec.MapRedTask

FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.MapRedTask 

Al tratar de hacer una copia de una tabla con particiones utilizando los comandos del consola de la colmena:

CREATE TABLE copy_table_name LIKE table_name; 
INSERT OVERWRITE TABLE copy_table_name PARTITION(day) SELECT * FROM table_name; 

que inicialmente tiene algunos errores de análisis semántico y tuvo que establecer:

set hive.exec.dynamic.partition=true 
set hive.exec.dynamic.partition.mode=nonstrict 

Aunque no estoy seguro de lo las propiedades anteriores hacen?

ouput completa de la consola colmena:

Total MapReduce jobs = 1 
Launching Job 1 out of 1 
Number of reduce tasks determined at compile time: 1 
In order to change the average load for a reducer (in bytes): 
    set hive.exec.reducers.bytes.per.reducer=<number> 
In order to limit the maximum number of reducers: 
    set hive.exec.reducers.max=<number> 
In order to set a constant number of reducers: 
    set mapred.reduce.tasks=<number> 
Starting Job = job_201206191101_4557, Tracking URL = http://jobtracker:50030/jobdetails.jsp?jobid=job_201206191101_4557 
Kill Command = /usr/lib/hadoop/bin/hadoop job -Dmapred.job.tracker=master:8021 -kill job_201206191101_4557 
2012-06-25 09:53:05,826 Stage-1 map = 0%, reduce = 0% 
2012-06-25 09:53:53,044 Stage-1 map = 100%, reduce = 100% 
Ended Job = job_201206191101_4557 with errors 
FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.MapRedTask 
+0

He visto esto al consultar una tabla de colmena que no ha tenido la compactación recientemente. Pruebe - alter table xyz compact 'MAJOR'; – DaveEdelstein

+0

BTW set hive.auto.convert.join = false; Se corrigió el problema en mi caso ... – Chris

+0

En mi caso, este mensaje de error no muy útil se debía a la ejecución de la colmena desde una carpeta donde no tenía permiso de escritura. cambiar el directorio solucionó el problema. – r2d2oid

Respuesta

78

ese no es el verdadero error, aquí es cómo llegar a ella:

Ir a la hadoop JobTracker web salpicadero, se encuentran los puestos de trabajo de la colmena de MapReduce que fallaron y mira los registros de las tareas fallidas. Eso le mostrará el error real .

errores de salida

la consola son inútiles, en gran parte beause que no tiene una vista de los trabajos/tareas individuales para tirar de los errores reales (no se pueden producir errores en múltiples tareas)

Espero que ayude.

+0

Hola @Matthew, sucedió lo mismo aquí. Lo ejecuté en Talend, que me dio este error, pero en la consola HIVE funcionó bien. Cualquier pista, ¿cómo puedo reanudar? Gracias –

12

Sé que tengo 3 años de retraso en este hilo, sin embargo todavía estoy proporcionando mis 2 centavos para casos similares en el futuro.

Hace poco tuve el mismo problema/error en mi clúster. El JOB siempre obtendría una reducción del 80% o más y falla con el mismo error, sin nada que seguir en los registros de ejecución. Tras varias iteraciones e investigaciones, encontré que entre la gran cantidad de archivos cargados, algunos no cumplían con la estructura proporcionada para la tabla base (la tabla se usa para insertar datos en una tabla dividida).

Cabe destacar que cada vez que ejecuté una consulta de selección para un valor particular en la columna de partición o creé una partición estática, funcionó bien, ya que en ese caso los registros de error se salteaban.

TL; DR: Compruebe los datos/archivos entrantes en busca de inconsistencias en la estructuración, ya que HIVE sigue la filosofía de Schema-On-Read.

0

Quité el archivo _SUCCESS de la ruta de salida de EMR en S3 y funcionó bien.

1

Agregando algo de información aquí, ya que me tomó un tiempo encontrar el panel web de hadoop jobtracker en HDInsight (Azure's Hadoop), y un colega finalmente me mostró dónde estaba. Hay un atajo en el nodo principal llamado "Estado de Hadoop Yarn" que es solo un enlace a una página http local (http://headnodehost:9014/cluster en mi caso). Cuando se abre el cuadro de mandos se veía así:

enter image description here

En ese cuadro de mandos se puede encontrar su aplicación que ha fallado, y luego después de hacer clic en él se puede ver en los registros de la hoja individual y reducir puestos de trabajo.

En mi caso, parece que aún se está quedando sin memoria en los reductores, a pesar de que ya había arrancado la memoria en la configuración. Por alguna razón, no estaba surgiendo los errores de "java outofmemory" que obtuve antes.

+0

¿Podría ayudarme a encontrar archivos de registro en el Administrador de recursos? –

0

Incluso me enfrenté al mismo problema: cuando se marcó en el tablero de instrumentos encontré el siguiente error. Como los datos venían a través de Flume y se habían interrumpido debido a que podría haber inconsistencia en algunos archivos.

Caused by: org.apache.hadoop.hive.serde2.SerDeException: org.codehaus.jackson.JsonParseException: Unexpected end-of-input within/between OBJECT entries 

Funcionando con menos archivos funcionó. La coherencia del formato fue la razón en mi caso.

+0

Tengo el mismo problema. Pero m no puedo encontrar el archivo de registro. ¿Podría ayudarme a encontrar el archivo de registro? –

0

La respuesta superior es correcta, que el código de error no le da mucha información. Una de las causas más comunes que vimos en nuestro equipo para este código de error fue cuando la consulta no se optimizó bien. Una razón conocida fue cuando hacemos una unión interna con las magnitudes de la tabla del lado izquierdo más grandes que la mesa del lado derecho. El intercambio de estas tablas generalmente haría el truco en tales casos.

0

También estaba enfrentando el mismo error cuando estaba insertando los datos en la tabla externa de HIVE que apuntaba al clúster de búsqueda elástica.

Reemplacé el anterior JAR elasticsearch-hadoop-2.0.0.RC1.jar a elasticsearch-hadoop-5.6.0.jar, y todo funcionó bien.

Mi sugerencia es utilizar el JAR específico según la versión de búsqueda elástica. No use JAR más antiguos si está utilizando una versión más nueva de búsqueda elástica.

Gracias a esta entrada Hive- Elasticsearch Write Operation #409

Cuestiones relacionadas