2012-03-28 16 views

Respuesta

17

Usted puede hacer esto de varias maneras:

  • Para establecer el número de reductores para todos los opeations cerdo, se puede utilizar la propiedad default_parallel - pero esto significa que cada paso será utilizar un único reductor, la disminución de rendimiento:

    set default_parallel 1;

  • Antes de ALMACÉN llamando, si una de las operaciones ejecutar es (Cogroup, CROSS, DISTINCT, GROUP, JOIN (interior), JOIN (exterior), y ORDER BY), entonces tu c un uso de la palabra clave PARALLEL 1 para denotar el uso de un único reductor para completar esa orden:

    GROUP a BY grp PARALLEL 1;

Ver Pig Cookbook - Parallel Features para más información

+0

¡Buenas cosas, Chris, gracias! – JasonA

+0

No creo que esto sea ideal ya que podría perder el error de memoria con muy pocos reductores en los datos de salida grandes. – FreeTymeKiyan

15

También puede utilizar el comando getmerge de Hadoop para fusionar todos aquellos parte- * archivos. Esto solo es posible si ejecuta sus scripts Pig desde el shell de Pig (y no desde Java).

Esto es una ventaja con respecto a la solución propuesta: como todavía puede usar varios reductores para procesar sus datos, entonces su trabajo puede correr más rápido, especialmente si cada reductor genera pocos datos.

grunt> fs -getmerge <Pig output file> <local file> 
Cuestiones relacionadas