2012-05-19 32 views
31

Aunque uso Hadoop con frecuencia en mi máquina Ubuntu nunca he pensado en los archivos SUCCESS y part-r-00000. La salida siempre reside en el archivo part-r-00000, pero ¿para qué sirve el archivo SUCCESS? ¿Por qué el archivo de salida tiene el nombre part-r-0000? ¿Hay alguna nomenclatura/significado o es solo una definición aleatoria?¿Qué son los archivos SUCCESS y part-r-00000 en hadoop?

Respuesta

57

Ver http://www.cloudera.com/blog/2010/08/what%E2%80%99s-new-in-apache-hadoop-0-21/

En la finalización con éxito de un trabajo, el tiempo de ejecución de MapReduce crea un archivo _SUCCESS en el directorio de salida. Esto puede ser útil para aplicaciones que necesitan ver si un conjunto de resultados está completo simplemente inspeccionando HDFS. (MapReduce-947)

Esto normalmente sería utilizado por los sistemas de planificación de tareas (como oozie), para denotar que la producción de seguimiento en el procesamiento del contenido de este directorio puede comenzar ya que todos los datos han sido.

actualización (en respuesta a comentar)

Los archivos de salida están por defecto nombrados parte-x-yyyyy donde:

  • x es o bien 'm' o 'r', dependiendo de si el trabajo era un mapa único trabajo, o reducir
  • yyyyy es el número asignador o reductor de tarea (basado en cero)

Por lo tanto, un trabajo que tenga 32 reductores tendrá archivos llamados part-r-00000 en la parte-r-00031, uno para cada tarea del reductor.

+0

Eso no explica por qué el archivo de salida se llama 'part-r-00000', sin embargo, o si esto siempre es siempre el caso. –

+0

Actualizado para abordar específicamente el comentario de @KyleStrand –

+2

Tenga en cuenta que: actualmente ('hadoop-streaming-2.4.0.2.1.1.0') no hay' x' si usted usa hadoop-streaming. Entonces será como 'part-00000'. – masu

Cuestiones relacionadas