Grandes Volúmenes de Datos: Procesamiento de los Datos

 

El procesamiento de grandes volúmenes de datos Big Data Processing

Es el conjunto de técnicas y tecnologías

Para recopilar, almacenar, transformar y analizar.

Datos masivos de manera eficiente.

 

Procesamiento de Grandes Volúmenes de Datos

 

Implica trabajar con datasets.

No pueden ser procesados por sistemas tradicionales

Debido a su tamaño, velocidad o complejidad.

Características del Big Data

Volumen: Datos en terabytes o petabytes.

Velocidad: Generación y procesamiento en tiempo real.

Variedad: Datos estructurados, semi-estructurados y no estructurados.

Ejemplo:

Google procesa 20 petabytes de datos al día.

 

Tecnologías para el Procesamiento de Big Data

 

Tecnología Uso Principal
Apache Spark Procesamiento distribuido en memoria
Hadoop Almacenamiento y análisis masivo con MapReduce
Kafka Procesamiento en tiempo real de flujos de datos
Airflow Orquestación de flujos de datos

 

 

Transformación de Datos

Es el proceso de convertir datos crudos

En un formato más útil y estructurado.

Ejemplos de Transformaciones

Conversión de formatos: JSON → CSV → Parquet.

Agrupación de datos: Resumir millones de registros en métricas clave.

Filtrado y limpieza: Eliminar datos irrelevantes o incorrectos.

 

Limpieza de Datos

Elimina inconsistencias, valores faltantes.

Errores en los datos.

Tipos de Problemas en los Datos

Valores nulos o duplicados.

Errores tipográficos o de formato.

Datos inconsistentes

Fechas incorrectas, valores negativos en precios.

Procesamiento de grandes volúmenes de datos = Carga y análisis eficiente de datos masivos.

Transformación de datos = Conversión de datos crudos en información útil.

Limpieza de datos = Eliminación de errores e inconsistencias.

 

Hadoop → Almacenamiento y Procesamiento en Big Data

 

Hadoop es un sistema de almacenamiento y procesamiento.

Distribuido basado en el paradigma MapReduce.

Hadoop es un ecosistema de Big Data

Permite almacenar y procesar grandes volúmenes de datos.

De manera distribuida.

Componentes principales:

HDFS Hadoop Distributed File System: Sistema de almacenamiento distribuido.

MapReduce: Modelo de procesamiento de datos en paralelo.

YARN: Administrador de recursos y tareas en Hadoop.

 

Casos de uso:

Procesamiento de petabytes de datos.

Análisis de logs y datos no estructurados.

Data Lakes en empresas.

 

Ejemplo: Contar palabras en un archivo con Hadoop MapReduce

 

from mrjob.job import MRJob

class WordCount(MRJob):
def mapper(self, _, line):
for word in line.split():
yield word.lower(), 1

def reducer(self, word, counts):
yield word, sum(counts)

if __name__ == «__main__»:
WordCount.run()

 

Explicación:

Este código cuenta palabras en un archivo.

Distribuido en varios servidores usando MapReduce.

Hadoop almacena los datos en HDFS Hadoop Distributed File System.

 

Caso de uso: Análisis de Logs de Servidores Web

 

Imagina que una empresa de e-commerce quiere analizar los logs.

De sus servidores web millones de registros diarios

Para detectar tendencias y errores.

1. Almacenar Logs en HDFS

Comando para subir logs de 10GB a HDFS

hdfs dfs -mkdir /logs
hdfs dfs -put access.log /logs/

 

Explicación:

Crea un directorio en HDFS y almacena el archivo de logs en él.

2. Procesar Logs con MapReduce

Ejemplo en Python: Contar visitas por IP usando Hadoop Streaming

Paso 1: Crear script de mapeo (mapper.py)

 

import sys

for line in sys.stdin:
fields = line.strip().split(» «)
if len(fields) > 0:
print(f»{fields[0]}\t1″)

 

Explicación:

Extrae la dirección IP de cada línea del log y emite clave (IP) → valor (1).

Paso 2: Crear script de reducción (reducer.py)

 

import sys
from collections import defaultdict

counts = defaultdict(int)

for line in sys.stdin:
ip, count = line.strip().split(«\t»)
counts[ip] += int(count)

for ip, total in counts.items():
print(f»{ip}\t{total}»)

 

Explicación:

Suma todas las visitas por IP.

 

Paso 3: Ejecutar en Hadoop

 

hadoop jar /usr/lib/hadoop-mapreduce/hadoop-streaming.jar \
-input /logs/access.log \
-output /logs/output \
-mapper «python3 mapper.py» \
-reducer «python3 reducer.py»

 

Resultado:

Genera una lista con el total de visitas por cada IP.

Salida esperada:

 

192.168.1.1 1200
192.168.1.2 890

 

Este análisis permite detectar IPs sospechosas o tráfico anómalo.

 

Apache Kafka → Procesamiento en Tiempo Real

 

Kafka es una plataforma de mensajería distribuida utilizada para procesar datos en streaming tiempo real.

Casos de uso:

Procesar logs en vivo de servidores.

Monitorizar transacciones bancarias en tiempo real.

Enviar datos a Machine Learning en streaming.

Componentes principales:

Producer: Publica mensajes en Kafka.

Broker: Nodo que almacena los mensajes.

Topic: Categoría de mensajes.

Consumer: Lee los mensajes en tiempo real.

 

Ejemplo: Kafka productor y consumidor en Python

Productor (envía mensajes a un tema en Kafka)

 

from kafka import KafkaProducer
import json

producer = KafkaProducer(bootstrap_servers=»localhost:9092″, value_serializer=lambda v: json.dumps(v).encode(«utf-8»))

mensaje = {«usuario»: «juan», «compra»: 200}
producer.send(«compras», mensaje)
print(«Mensaje enviado»)

 

Explicación:

Kafka recibe eventos en tiempo real de usuarios.

Comprando en un e-commerce.

Consumidor (lee los mensajes en streaming)

 

from kafka import KafkaConsumer
import json

consumer = KafkaConsumer(«compras», bootstrap_servers=»localhost:9092″, value_deserializer=lambda m: json.loads(m.decode(«utf-8»)))

for mensaje in consumer:
print(f»Compra recibida: {mensaje.value}»)

 

Explicación:

Kafka procesa los eventos en tiempo real y permite reaccionar inmediatamente.

 

Caso de uso: Monitoreo en Tiempo Real de Transacciones Bancarias

Un banco quiere detectar transacciones fraudulentas en tiempo real.

 

1. Configurar un Kafka Topic para recibir transacciones

Crear un topic llamado transacciones

 

kafka-topics.sh –create –topic transacciones –bootstrap-server localhost:9092 –partitions 3 –replication-factor 2

 

Explicación:

Kafka dividirá el procesamiento en 3 particiones para mejorar el rendimiento.

 

2. Productor: Enviar transacciones en tiempo real

 

from kafka import KafkaProducer
import json
import time
import random

producer = KafkaProducer(bootstrap_servers=»localhost:9092″,
value_serializer=lambda v: json.dumps(v).encode(«utf-8»))

usuarios = [«Carlos», «Ana», «Pedro», «Sofia»] bancos = [«BBVA», «Santander», «CaixaBank»]

while True:
transaccion = {
«usuario»: random.choice(usuarios),
«monto»: random.randint(10, 5000),
«banco»: random.choice(bancos)
}
producer.send(«transacciones», transaccion)
print(f» Enviando: {transaccion}»)
time.sleep(1)

 

Explicación:

Cada segundo, genera una transacción aleatoria y la envía a Kafka.

Consumidor: Detectar Fraudes en Tiempo Real

 

from kafka import KafkaConsumer
import json

consumer = KafkaConsumer(«transacciones»,
bootstrap_servers=»localhost:9092″,
value_deserializer=lambda m: json.loads(m.decode(«utf-8»)))

for mensaje in consumer:
transaccion = mensaje.value
if transaccion[«monto»] > 3000:
print(f»ALERTA DE FRAUDE: {transaccion}»)
else:
print(f»Transacción OK: {transaccion}»)

 

Explicación:

Si la transacción es mayor a 3000€, genera una alerta de fraude.

Resultado esperado

 

Transacción OK: {‘usuario’: ‘Ana’, ‘monto’: 850, ‘banco’: ‘Santander’}
Transacción OK: {‘usuario’: ‘Pedro’, ‘monto’: 2700, ‘banco’: ‘BBVA’}
ALERTA DE FRAUDE: {‘usuario’: ‘Sofia’, ‘monto’: 4500, ‘banco’: ‘CaixaBank’}

 

El banco puede bloquear automáticamente la transacción sospechosa.

 

Tecnología Uso Principal Caso de Uso
Hadoop Almacenamiento y procesamiento distribuido Análisis de logs de servidores
Kafka Procesamiento en tiempo real Monitoreo de fraudes bancarios

 

 

 

Manu Duque
Resumen de privacidad

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.

Nunca almacenamos información personal.

Puedes revisar nuestra política en la página de Política de Privacidad, Condiciones de Uso y Cookies.