2012-08-27 9 views
6

Hay un límite para el tamaño del contador Hadoop. Es 120 por defecto. Intento usar la configuración "mapreduce.job.counters.limit" para cambiar eso, pero no funciona. He visto el código fuente. Es como la instancia de JobConf en la clase "org.apache.hadoop.mapred.Counters" es privada. ¿Alguien ha visto eso antes? ¿Cuál es tu solución? THX :)Más de 120 contadores en hadoop

+0

¿Qué versión de Hadoop se ejecuta? – HypnoticSheep

+0

Es 0.20. ¿Viste eso antes? –

+0

No me he encontrado con el mismo problema (principalmente porque no he utilizado contadores), pero estoy usando 1.0.3 y las cosas de JobConf son diferentes. Pruebe la solución de Lorand a continuación, parece que funcionará. – HypnoticSheep

Respuesta

5

Puede anular esa propiedad en mapred-site.xml en su JT, TT, nodos cliente, pero asegúrese de que esta será una modificación de todo el sistema:

<configuration> 
    ... 
    <property> 
    <name>mapreduce.job.counters.limit</name> 
    <value>500</value> 
    </property> 
    ... 
</configuration> 

reinicie el servicio mapreduce en su racimo.

+0

Intenté su solución. Funciona. Gracias :). Me pregunto si hay una forma de resolver este problema de forma dinámica. –

+0

¿No hay forma de hacer esto para un solo trabajo? – javamonkey79

-1

Podemos personalizar los límites como opciones de línea de comandos solo para trabajos específicos, en lugar de hacer cambios en mapred-site.xml.

-Dmapreduce.job.counters.limit=x 
-Dmapreduce.job.counters.groups.max=y 

NOTA: x y y son valores personalizados en función de su entorno/requisito.

4

En Hadoop 2, este parámetro de configuración se llama

mapreduce.job.counters.max 

Si lo establece en la línea de comandos o en el objeto de configuración no es suficiente, sin embargo. Es necesario llamar al método estático

org.apache.hadoop.mapreduce.counters.Limits.init()

en el método de configuración() de su asignador o reductor para obtener la configuración surta efecto.

Probado con 2.6.0 y 2.7.1.

0

El párrafo se establece mediante el archivo de configuración, mientras que los párrafos siguientes se llevarán a efecto

mapreduce.job.counters.max=1000 
mapreduce.job.counters.groups.max=500 
mapreduce.job.counters.group.name.max=1000 
mapreduce.job.counters.counter.name.max=500 
0

Simplemente añadiendo esto en caso de cualquier otra persona se enfrenta al mismo problema que hicimos: el aumento de los contadores de la MRJob.

Para elevar el número de contadores, añadir a su emr_configurationsmrjob.conf (o pasarlo a MRJob como un parámetro de configuración):

runners: 
    emr: 
    emr_configurations: 
     - Classification: mapred-site 
     Properties: 
      mapreduce.job.counters.max: 1024 
      mapreduce.job.counters.counter.name.max: 256 
      mapreduce.job.counters.groups.max: 256 
      mapreduce.job.counters.group.name.max: 256 
Cuestiones relacionadas