2012-02-13 5 views
7

Necesito establecer el número de reductores mientras hago una operación de unión en Hive. No quiero establecer la misma cantidad de reductores en cada trabajo de combinación que tengo. ¿Cómo puedo mencionarlo como argumento? Gracias por adelantado.Unir la colmena establecer el número de reductores

Respuesta

14

En la parte superior del archivo de comandos, poner esto:

set mapred.reduce.tasks=128 
+0

Esto lo configurará para todas las partes de la consulta en lugar de para una unión específica. No hay forma de hacerlo por cada unión (al menos no todavía) –

+0

Lo necesito para cada combinación. Quiero decir que tengo varias consultas de unión en mi script, cada una con diferentes tamaños de entrada. Por lo tanto, quiero establecer una gran cantidad de reductores en combinaciones pesadas y menos reductores, donde la unión tiene menos datos. – Sandeep

+0

Necesito algo como esto. HIVE_HOME/bin/hive -set mapred.reducer.tasks = "comando". Para que pueda ejecutar el comando colmena desde la terminal. – Sandeep

0

La única manera de hacer esto actualmente es dividir su un script Colmena en varias partes donde pesada se une serían puestos en un guión diferente. Luego, para combinaciones pesadas, puede especificar una gran cantidad de reductores. Para llevar a cabo todas estas secuencias de comandos de una sola vez, puede utilizar hive -f opción con todos los guiones que figuran en una secuencia de comandos shell como se muestra a continuación: #example of shell script RunMyHQL.sh $HIVE_HOME/bin/hive -f /somepath/script1.hql $HIVE_HOME/bin/hive -f /somepath/script2.hql $HIVE_HOME/bin/hive -f /somepath/script3.hql

A continuación, asigne los permisos adecuados para presentar RunMyHQL.sh chmod u+x /somepath/RunMyHQL.sh

Entonces Ejecute el script de shell ./RunMyHQL.sh Cada uno de script1, script2 y script3 puede contener el número deseado de correlacionadores y reductores. Si esto necesita ejecutarse en intervalos específicos una y otra vez, entonces le sugiero que implemente el flujo de trabajo de Oozie.

Cuestiones relacionadas