En este paso, profundizarás en el mundo de los formatos de almacenamiento de Hadoop, explorando sus fortalezas, debilidades y adecuación para diferentes tipos de datos y cargas de trabajo.
Primero, asegúrate de estar registrado como el usuario hadoop
ejecutando el siguiente comando en la terminal:
su - hadoop
Luego, creemos un directorio para almacenar nuestros archivos de datos:
mkdir /home/hadoop/data
A continuación, generaremos algunos archivos de datos de muestra con los que trabajar:
echo "Alice,25,New York" >> /home/hadoop/data/people.csv
echo "Bob,32,Los Angeles" >> /home/hadoop/data/people.csv
echo "Charlie,19,Chicago" >> /home/hadoop/data/people.csv
Ahora, exploremos diferentes formatos de almacenamiento y sus casos de uso:
-
Archivos de texto: Los archivos de texto son el formato más simple y legible para humanos. Funcionan bien para conjuntos de datos pequeños y prototipado, pero pueden ser ineficientes para conjuntos de datos grandes debido a la falta de compresión y aplicación de esquema.
-
Archivos de secuencia: Los archivos de secuencia son archivos planos que consisten en pares clave-valor binarios. Están comprimidos y se pueden dividir, lo que los hace eficientes para conjuntos de datos grandes con registros relativamente pequeños. Sin embargo, carecen de aplicación de esquema y pueden ser desafiantes de trabajar con tipos de datos complejos.
-
Archivos Avro: Apache Avro es un formato de serialización de datos basado en filas que admite la aplicación de esquema y una compresión eficiente. Es adecuado para conjuntos de datos grandes con tipos de datos complejos y ofrece una excelente interoperabilidad entre diferentes lenguajes de programación.
-
Archivos Parquet: Apache Parquet es un formato de almacenamiento orientado a columnas que ofrece una excelente compresión y un salto de datos eficiente. Es particularmente adecuado para cargas de trabajo analíticas que involucran conjuntos de datos grandes con esquemas complejos y muchas columnas.
-
Archivos ORC: El formato Optimized Row Columnar (ORC) es otro formato de almacenamiento orientado a columnas optimizado para conjuntos de datos grandes con esquemas complejos. Proporciona una excelente compresión, capacidades de salto de datos y lecturas eficientes para cargas de trabajo analíticas.
Para explorar estos formatos más profundamente, puedes utilizar las herramientas y bibliotecas integradas de Hadoop, como Apache Hive o Apache Spark. Por ejemplo, para crear una tabla de Hive utilizando el formato de texto:
Inicia la shell de Hive ejecutando el siguiente comando:
hive
Crea una tabla de Hive utilizando el formato de texto:
CREATE TABLE people (
name STRING,
age INT,
city STRING
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE;
Carga los datos en la tabla:
LOAD DATA LOCAL INPATH '/home/hadoop/data/people.csv' INTO TABLE people;
Esto creará una tabla de Hive llamada people
con el esquema especificado y almacenará los datos en el formato de texto.