Hadoop input formats

A más del TextInputFormat (cada registro es una línea de un archivo de texto) usado por defecto, Hadoop soporta varios formatos de entrada para los mappers. Por ejemplo,

  • WholeFileInputFormat: Cada registro es un archivo completo. No utiliza keys (NullWritable). Los valores son instancias de BytesWritable. Usando esta clase como formato de entrada para los mappers, nos permite asegurar que un mapper reciba el contenido de un archivo completo (a manera de arreglo de bytes). En el libro Hadoop: The definitive guide (págs. 193-196) hay una explicación detallada de cómo usar esta clase.
  • KeyValueTextInputFormat: Cada registro es una línea de texto. Utilizado para leer de archivos de texto en los que cada línea representa una tupla <key, value> (por ejemplo, los archivos generados por los reducers que emiten TextOutputFormat). El delimitador entre la clave y el valor es configurable (TAB por defecto).
  • StreamInputFormat en combinación con StreamXmlRecordReader: Cada registro es un “registro” XML. Los tags de inicio y fin del “registro” XML son configurables.
  • DBInputFormat: permite leer datos de una base de datos relacional, vía JDBC. Hay una entrada detallando el uso de esta clase en el blog de Cloudera.

Tags: , ,

One Response to “Hadoop input formats”

  1. Juan Antonio Plaza Says:

    Encontré este paper acerca de personalizar los formatos de entrada para poder procesar imágenes en Hadoop. Espero que le sea útil a alguien.

    http://hpc.asu.edu/files/Customizing%20Input%20File%20Formats%20for%20Image%20Processing%20in%20Hadoop_0.pdf

Leave a Reply