Optimización de recursos espaciales con Hadoop

HadoopBeginner
Practicar Ahora

Introducción

Bienvenido a la Estación de Comercio Interestelar, un centro bullicioso donde comerciantes y viajeros de toda la galaxia se reúnen para intercambiar bienes y servicios. Como un habilidoso Mecánico de la Estación Espacial, se necesita mucho tu pericia para mantener en funcionamiento sin problemas los sistemas de la estación. Hoy, te han encomendado la tarea de analizar y optimizar la asignación de recursos de la estación mediante la clasificación de datos basada en patrones de uso.

Tu objetivo es desarrollar una solución basada en Hadoop que pueda procesar y clasificar eficientemente grandes conjuntos de datos, asegurando que los recursos de la estación se asignen de manera eficiente para satisfacer las necesidades en constante cambio de sus diversos visitantes.

Configurar el entorno

En este paso, configuraremos el entorno para nuestro proyecto de Hadoop y crearemos un conjunto de datos de ejemplo.

  1. Abra una terminal y cambie al usuario hadoop ejecutando el siguiente comando:
su - hadoop
  1. Cree un nuevo directorio llamado sorting_lab en el directorio /home/hadoop:
mkdir /home/hadoop/sorting_lab
  1. Navegue hasta el directorio sorting_lab:
cd /home/hadoop/sorting_lab
  1. Cree un conjunto de datos de ejemplo ejecutando el siguiente comando:
echo -e "apple\t5\nbanana\t3\norange\t7\ngrape\t2\nstrawberry\t6" > fruit_sales.txt

Este comando crea un archivo llamado fruit_sales.txt con el siguiente contenido:

apple   5
banana  3
orange  7
grape   2
strawberry  6

Cada línea del archivo representa una fruta y su cantidad de ventas, separadas por un carácter tabulación.

Cargar datos en Hive

En este paso, crearemos una tabla de Hive y cargaremos el conjunto de datos de ejemplo en ella.

  1. Inicie la shell de Hive ejecutando el siguiente comando:
hive
  1. Cree una nueva base de datos llamada sorting_db:
CREATE DATABASE sorting_db;
  1. Utilice la base de datos sorting_db:
USE sorting_db;
  1. Cree una nueva tabla llamada fruit_sales con dos columnas: fruit (cadena) y count (entero):
CREATE TABLE fruit_sales (fruit STRING, count INT) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';
  1. Cargue el archivo fruit_sales.txt en la tabla fruit_sales:
LOAD DATA LOCAL INPATH '/home/hadoop/sorting_lab/fruit_sales.txt' OVERWRITE INTO TABLE fruit_sales;
  1. Verifique que los datos se cargaron correctamente ejecutando una consulta SELECT:
SELECT * FROM fruit_sales;

Esto debería mostrar:

apple   5
banana  3
orange  7
grape   2
strawberry  6
  1. Salga de la shell de Hive ejecutando el siguiente comando:
quit;

Ordenar datos por uso

En este paso, ordenaremos la tabla fruit_sales por la columna count en orden descendente utilizando la cláusula ORDER BY de Hive.

  1. Inicie la shell de Hive ejecutando el siguiente comando:
hive
  1. Utilice la base de datos sorting_db:
USE sorting_db;
  1. Ejecute la siguiente consulta para ordenar la tabla fruit_sales por la columna count en orden descendente:
CREATE TABLE result AS
SELECT * FROM fruit_sales ORDER BY count DESC;
SELECT * FROM result;

Esto debería mostrar:

orange  7
strawberry  6
apple   5
banana  3
grape   2
  1. Salga de la shell de Hive ejecutando el siguiente comando:
quit;

Resumen

En este laboratorio, exploramos la característica "ordenar por uso" en Hadoop Hive. Comenzamos configurando el entorno y creando un conjunto de datos de ejemplo. Luego, aprendimos cómo cargar los datos en una tabla de Hive y ordenar la tabla por una columna específica utilizando la cláusula ORDER BY.

El laboratorio proporcionó experiencia práctica en el trabajo con Hive y demostró cómo ordenar datos basados en patrones de uso. Al dominar esta habilidad, puedes analizar y optimizar eficientemente la asignación de recursos en varios escenarios, como la Estación de Comercio Interestelar.

Durante todo el laboratorio, también utilizamos verificadores para comprobar la finalización exitosa de cada paso, lo que garantiza que hayas adquirido los conocimientos y la experiencia práctica necesarios para enfrentar retos similares en el futuro.