sql >> Base de Datos >  >> NoSQL >> HBase

¿Qué es el formato de salida de Hadoop en MapReduce?

En nuestro anterior Tut de Hadoop o rial , le proporcionamos una descripción detallada de InputFormat. Ahora, en este blog, vamos a cubrir el formato de salida de Hadoop.

Discutiremos qué es OutputFormat en Hadoop, qué es RecordWritter en MapReduce OutputFormat. También cubriremos los tipos de OutputFormat en MapReduce.

Introducción al formato de salida de Hadoop

Formato de salida verifique la especificación de salida para la ejecución del trabajo Map-Reduce. Describe cómo se usa la implementación de RecordWriter para escribir resultados en archivos de salida.

Antes de comenzar con OutputFormat, primero aprendamos qué es RecordWriter y cuál es el trabajo de RecordWriter en MapReduce.

1. RecordWriter en Hadoop MapReduce

Como sabemos, Reductor toma Mapeadores salida intermedia como entrada. Luego ejecuta una función reductora en ellos para generar una salida que es nuevamente cero o más pares clave-valor.

Entonces, RecordWriter en la ejecución del trabajo MapReduce escribe estos pares clave-valor de salida desde la fase Reducer a los archivos de salida.

2. Formato de salida de Hadoop

Desde arriba, está claro que RecordWriter toma datos de salida de Reducer. Luego escribe estos datos en los archivos de salida. OutputFormat determina la forma en que RecordWriter escribe estos pares clave-valor de salida en los archivos de salida.

Las funciones OutputFormat e InputFormat son similares. Las instancias de OutputFormat se utilizan para escribir en archivos en el disco local o en HDFS. En la ejecución del trabajo de MapReduce sobre la base de la especificación de salida;

  • El trabajo de Hadoop MapReduce verifica que el directorio de salida no esté ya presente.
  • OutputFormat en el trabajo de MapReduce proporciona la implementación de RecordWriter que se utilizará para escribir los archivos de salida del trabajo. Luego, los archivos de salida se almacenan en un FileSystem.

El marco utiliza FileOutputFormat.setOutputPath() método para establecer el directorio de salida.

Tipos de formato de salida en MapReduce

Hay varios tipos de OutputFormat que son los siguientes:

1. Formato de salida de texto

El formato de salida predeterminado es TextOutputFormat. Escribe pares (clave, valor) en líneas individuales de archivos de texto. Sus claves y valores pueden ser de cualquier tipo. La razón detrás es que TextOutputFormat los convierte en cadenas llamando a toString() en ellos.

Separa el par clave-valor por un carácter de tabulación. Mediante el uso de MapReduce.output.textoutputformat.separator propiedad también podemos cambiarla.

KeyValueTextOutputFormat también se utiliza para leer estos archivos de texto de salida.

2. Formato de salida de archivo de secuencia

Este OutputFormat escribe archivos de secuencias para su salida. SequenceFileInputFormat también es un uso de formato intermedio entre trabajos de MapReduce. Serializa tipos de datos arbitrarios en el archivo.

Y el SequenceFileInputFormat correspondiente deserializará el archivo en los mismos tipos. Presenta los datos al siguiente mapeador de la misma manera que lo emitía el reductor anterior. Los métodos estáticos también controlan la compresión.

3. SequenceFileAsBinaryOutputFormat

Es otra variante de SequenceFileInputFormat. También escribe claves y valores en el archivo de secuencia en formato binario.

4. Formato de salida de archivo de mapa

Es otra forma de FileOutputFormat. También escribe la salida como archivos de mapa. El marco agrega una clave en un MapFile en orden. Por lo tanto, debemos asegurarnos de que el reductor emita claves en orden ordenado.

5. Múltiples Salidas

Este formato permite escribir datos en archivos cuyos nombres se derivan de las claves y valores de salida.

6. Formato de salida perezoso

En la ejecución del trabajo de MapReduce, FileOutputFormat a veces crea archivos de salida, incluso si están vacíos. LazyOutputFormat también es un formato de salida contenedor.

7. Formato de salida DB

Es el formato de salida para escribir en bases de datos relacionales y HBase. Este formato también envía la salida de reducción a una tabla SQL. También acepta pares clave-valor. En esto, la clave tiene un tipo que se extiende DBwritable.

Conclusión

Por lo tanto, se utilizan diferentes formatos de salida según la necesidad. Espero que encuentre útil este blog. Si tiene alguna consulta sobre Hadoop OutputFormat, deje un comentario en un cuadro de comentarios. Estaremos encantados de resolverlos.