Pregunta

Soy nuevo en Hive y he encontrado un problema,

Tengo una mesa en colmena como esta:

create table td(id int, time string, ip string, v1 bigint, v2 int, v3 int,
v4 int, v5 bigint, v6 int)  PARTITIONED BY(dt STRING)
ROW FORMAT DELIMITED FIELDS
TERMINATED BY ','  lines TERMINATED BY '\n' ;  

Y ejecuto un SQL como:

from td
INSERT OVERWRITE  DIRECTORY '/tmp/total.out' select count(v1)
INSERT OVERWRITE  DIRECTORY '/tmp/totaldistinct.out' select count(distinct v1)
INSERT OVERWRITE  DIRECTORY '/tmp/distinctuin.out' select distinct v1

INSERT OVERWRITE  DIRECTORY '/tmp/v4.out' select v4 , count(v1), count(distinct v1) group by v4
INSERT OVERWRITE  DIRECTORY '/tmp/v3v4.out' select v3, v4 , count(v1), count(distinct v1) group by v3, v4

INSERT OVERWRITE  DIRECTORY '/tmp/v426.out' select count(v1), count(distinct v1)  where v4=2 or v4=6
INSERT OVERWRITE  DIRECTORY '/tmp/v3v426.out' select v3, count(v1), count(distinct v1) where v4=2 or v4=6 group by v3

INSERT OVERWRITE  DIRECTORY '/tmp/v415.out' select count(v1), count(distinct v1)  where v4=1 or v4=5
INSERT OVERWRITE  DIRECTORY '/tmp/v3v415.out' select v3, count(v1), count(distinct v1) where v4=1 or v4=5 group by v3

Funciona, y el resultado de la salida es lo que quiero.

Pero hay un problema, Hive genera 9 trabajos de MapReduce y ejecuta estos trabajos uno por uno.

Ejecuto explicar en esta consulta y recibí el siguiente mensaje:

STAGE DEPENDENCIES:
  Stage-9 is a root stage
  Stage-0 depends on stages: Stage-9
  Stage-10 depends on stages: Stage-9
  Stage-1 depends on stages: Stage-10
  Stage-11 depends on stages: Stage-9
  Stage-2 depends on stages: Stage-11
  Stage-12 depends on stages: Stage-9
  Stage-3 depends on stages: Stage-12
  Stage-13 depends on stages: Stage-9
  Stage-4 depends on stages: Stage-13
  Stage-14 depends on stages: Stage-9
  Stage-5 depends on stages: Stage-14
  Stage-15 depends on stages: Stage-9
  Stage-6 depends on stages: Stage-15
  Stage-16 depends on stages: Stage-9
  Stage-7 depends on stages: Stage-16
  Stage-17 depends on stages: Stage-9
  Stage-8 depends on stages: Stage-17

Parece que la etapa 9-17 corresponde al trabajo de MapReduce 0-8
Pero del mensaje de explicación anterior, la etapa 10-17 solo depende de la etapa 9,
Entonces tengo una pregunta, ¿por qué Job 1-8 no puede ejecutarse simultáneamente?

¿O cómo puedo hacer que el trabajo 1-8 se ejecute simultáneamente?

¡Muchas gracias por su ayuda!

¿Fue útil?

Solución

En Hive-Default.xml, hay una propiedad llamada "Hive.exec.Parallel" que podría habilitar el trabajo de ejecución en paralelo. El valor predeterminado es "falso". Puede cambiarlo a "verdadero" para adquirir esta habilidad. Puede usar otra propiedad "Hive.exec.parallel.thread.number" para controlar cuántos trabajos como máximo se pueden ejecutar en paralelo.

Para más detalles: https://issues.apache.org/jira/browse/hive-549

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top