Qué es Hive: Devuelve el código 2 de org.apache.hadoop.colmena.ql.exec.MapRedTask


Estoy recibiendo:

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

Al intentar hacer una copia de una tabla particionada usando los comandos de la consola hive:

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

Inicialmente obtuve algunos errores de análisis semántico y tuve que establecer:

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

Aunque no estoy seguro de lo que hacen las propiedades anteriores?

Salida completa desde la consola de la 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
Author: gyan, 2012-06-25

7 answers

Ese no es el error real, así es como encontrarlo:

Vaya al panel web de hadoop jobtracker, busque los trabajos mapreduce de la colmena que fallaron y mire los registros de las tareas fallidas. Eso te mostrará el error real .

Los errores de salida de la consola son inútiles, en gran parte porque no tiene una vista de los trabajos/tareas individuales para extraer los errores reales (podría haber errores en múltiples tareas)

Espero que eso ayude.

 87
Author: Matthew Rathbone,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-06-28 16:07:18

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

Recientemente me enfrenté al mismo problema/error en mi clúster. El TRABAJO siempre tendría una reducción del 80%+ y fallaría con el mismo error, sin nada que hacer en los registros de ejecución tampoco. Tras varias iteraciones e investigaciones, descubrí que entre la gran cantidad de archivos que se cargaban, algunos no cumplían con la estructura proporcionada para la tabla base(la tabla se usa para insertar datos en tabla particionada).

El punto a tener en cuenta aquí es que cada vez que ejecuté una consulta select para un valor particular en la columna de particiones o creé una partición estática, funcionó bien, ya que en ese caso se omitieron los registros de errores.

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

 13
Author: user3032283,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-04-07 19:14:08

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

introduzca la descripción de la imagen aquí

En ese panel puede encontrar su aplicación fallida, y luego después al hacer clic en él, puede ver los registros del mapa individual y reducir los trabajos.

En mi caso, parecía que todavía se estaba 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 saliendo a la superficie el "java outofmemory" errores que obtuve antes, aunque.

 2
Author: Mike Wise,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-09-09 08:56:17

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

 0
Author: Sindhu Patil,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-04-10 10:55:05

Incluso me enfrenté al mismo problema: cuando se comprueba en el panel de control, encontré el siguiente error. A medida que los datos venían a través del canal y había interrumpido en el medio debido a lo cual puede 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

Corriendo en menos archivos funcionó. La consistencia del formato fue la razón en mi caso.

 0
Author: Dipika Baad,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-09-15 08:36:08

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

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

Mi sugerencia es por favor utilizar el TARRO específico según la versión de búsqueda elástica. No uses tarros antiguos si estás usando una versión más reciente de elastic search.

Gracias a este post Hive-Operación de escritura Elasticsearch #409

 0
Author: Aniket Kulkarni,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-09-15 08:43:17

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

 -1
Author: Dileep Kumar Patchigolla,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-09-14 06:58:26