hive - venezuela - colmena izquierda combinación externa de larga ejecución
hive traduccion (2)
Hortonworks HDP 2.3.0 - Colmena 0.14
Tabla T1 (partición en col1, sin cubeta, ORC) aplicación 120 millones de filas y 6 GB de tamaño de datos Aplicación T2 (partición en col2, sin cubeta, ORC) 200 M filas y 6 MB de tamaño de datos
T1 unión externa izquierda en t2 (t1.col3 = t2.col3)
La consulta anterior se ejecuta durante mucho tiempo en la última fase de reducción en los modos tez y mr. También probé la conversión automática de mapas verdaderos / falsos y explícitos.
Aún así, la consulta se está ejecutando en la última fase de reducción, que nunca termina.
FYI - Si el tamaño de los datos de T2 es de 9k o 1GB, la consulta finaliza.
El problema tal vez es que hay demasiados bytes / filas por reductor. Si la ejecución de la aplicación está atascada en el último reductor único , lo más probable es que esté sesgada. Para verificarlo, seleccione top 5 col3 de ambas tablas, skew es cuando hay muchos registros con el mismo valor de clave (digamos 30%). Si se trata de un sesgo, intente unir la tecla oblicua por separado y UNIÓN TOTAL con todas las demás teclas. Algo como esto:
select * from
T1 left outer join on t2 on ( t1.col3 = t2.col3 ) and t1.col3=SKEW_VALUE
union all
select * from
T1 left outer join on t2 on ( t1.col3 = t2.col3 ) and t1.col3<>SKEW_VALUE
Si la ejecución de la aplicación está trabada en la última etapa del reductor, no hay un solo reductor o pocos reductores, entonces verifique la configuración de la sección bytes.per.reducer, tal vez sea demasiado alta.
set hive.exec.reducers.bytes.per.reducer=67108864;
Pero, ¿ha intentado dar tamaño a la combinación automática de conversiones, intente dar tamaño> que a una tabla pequeña que pueda caber en la memoria?
establecer hive.auto.convert.join.noconditionaltask.size = 10000000;