wordcount tutorial que how java hadoop mapreduce yarn

java - tutorial - how to configure hadoop



Nombre de contador truncado/inconsistente de Hadoop (1)

Por ahora, tengo un trabajo de Hadoop que crea contadores con un nombre bastante grande.

Por ejemplo, el siguiente: stats.counters.server-name.job.job-name.mapper.site.site-name.qualifier.qualifier-name.super-long-string-which-is-not-within-standard-limits . Este contador se trunca en la interfaz web y en la llamada al método getName() . Descubrí que Hadoop tiene limitaciones en el nombre máximo del contador y este id de configuración mapreduce.job.counters.counter.name.max es para configurar este límite. Así que incrementé esto a 500 y la interfaz web ahora muestra el nombre completo del contador. Pero getName() del contador aún devuelve el nombre truncado.

¿Podría alguien, por favor, explicar esto o señalarme mis errores? Gracias.

EDITAR 1

La configuración de mi servidor Hadoop consiste en un único servidor con HDFS, YARN y map-reduce en sí mismo. Durante la reducción de mapas, hay algunos incrementos de contador y después de que se completa el trabajo, en ToolRunner busco contadores con el uso de org.apache.hadoop.mapreduce.Job#getCounters .

EDITAR 2

La versión de Hadoop es la siguiente:

Hadoop 2.6.0-cdh5.8.0 Subversion http://github.com/cloudera/hadoop -r 042da8b868a212c843bcbf3594519dd26e816e79 Compiled by jenkins on 2016-07-12T22:55Z Compiled with protoc 2.5.0 From source with checksum 2b6c319ecc19f118d6e1c823175717b5 This command was run using /usr/lib/hadoop/hadoop-common-2.6.0-cdh5.8.0.jar

Hice una investigación adicional y parece que este problema describe una situación similar a la mía. Pero es bastante confuso porque puedo aumentar el número de contadores pero no la longitud del nombre del contador ...

EDITAR 3

Hoy, pasé bastante tiempo depurando partes internas del Hadoop. Algunas cosas interesantes:

  1. org.apache.hadoop.mapred.ClientServiceDelegate#getJobCounters método org.apache.hadoop.mapred.ClientServiceDelegate#getJobCounters devuelve un montón de contadores de hilo con nombres TRUNCADOS y nombres de visualización COMPLETOS .
  2. No se pudieron depurar mapas y reductores, pero con la ayuda del registro parece que org.apache.hadoop.mapreduce.Counter#getName método org.apache.hadoop.mapreduce.Counter#getName funciona correctamente durante la ejecución del reductor.

getName() parece estar en desuso

Alternativamente, se puede getUri() que viene con una longitud máxima predeterminada de 255.

Enlace de documentación: getUri()

No lo he probado personalmente, pero parece ser una posible solución a este problema.