Saltar al contenido

¿Cómo leo archivos comprimidos Snappy en HDFS sin usar Hadoop?

Solución:

Finalmente descubrí que puedo usar el siguiente comando para leer el contenido de un archivo comprimido Snappy en HDFS:

hadoop fs -text /path/filename

Usando los últimos comandos en Cloudera o HDP:

hdfs dfs -text /path/filename

Si la intención es descargar el archivo en formato de texto para un examen y procesamiento adicionales, la salida de ese comando se puede canalizar a un archivo en el sistema local. También puede usar head para ver las primeras líneas del archivo.

Por favor, eche un vistazo a esta publicación en el blog de Cloudera. Explica cómo usar Snappy con Hadoop. Esencialmente, los archivos Snappy en texto sin formato no se pueden dividir, por lo que no puede leer un solo archivo en varios hosts.

La solución es usar Snappy en un formato de contenedor, por lo que esencialmente estás usando Hadoop SequenceFile con compresión configurada como Snappy. Como se describe en esta respuesta, puede establecer la propiedad mapred.output.compression.codec para org.apache.hadoop.io.compress.SnappyCodec y configure el formato de salida de su trabajo como SequenceFileOutputFormat.

Y luego, para leerlo, solo debes usar SequenceFile.Reader porque la información del códec se almacena en el encabezado del archivo.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *