Qué es EMR y cuándo usarlo

Clase 29 de 52Curso de Big Data en AWS

Resumen

¿Buscas ejecutar cargas de trabajo muy grandes con flexibilidad y control? EMR, Elastic Map Reduce, permite lanzar clusters basados en Hadoop para procesar datos a escala, integrarse con servicios de AWS y orquestar tareas complejas con herramientas abiertas como Spark.

¿Qué es EMR y qué cargas de trabajo soporta?

EMR es un servicio para crear clusters con instancias S2 basados en Hadoop. Al ser cluster, ofrece instancias dedicadas, mayor administración y alta flexibilidad para escalar.

  • Ejecuta cargas de trabajo muy grandes con motores de código abierto.
  • Soporta múltiples frameworks: Map Reduce, Spark, Peak, Presto, Hive, Impala, Flink, Tensorflow, Zeppelin, Ganglia, USI.
  • Integra con servicios de AWS: S3, Redshift, DynamoDB y Kinesis.
  • Permite correr ETL de Glue en EMR usando Spark. En Glue se usan Dynamic Frames; en EMR, Data Frames de Spark. Cambia la configuración y el modelo de datos.
  • Conexión a notebooks para consultar y explorar datos desde EMR.

Esta sección implica dominar conceptos como clusters, frameworks de procesamiento y diferencias entre Dynamic Frames y Data Frames para adaptar ETL sin fricción.

¿Cómo se configura y orquesta un cluster EMR?

Al lanzar el cluster puedes definir acciones iniciales y el orden de ejecución de tareas. Esto mejora la reproducibilidad y el control operativo.

  • Bootstrap Actions: scripts y configuraciones que corren al inicio del lanzamiento. Útiles para cargar notebooks desde S3, cambiar puertos o aplicar parámetros personalizados. Se ejecutan antes de que el cluster quede productivo.
  • Steps: pasos que organizan ETL y scripts de Python con dependencias. Se encadenan usando el parámetro depends_on para que una tarea inicie solo cuando termine la anterior.

¿Qué componentes tiene el cluster?

  • Master node: orquesta y coordina los demás nodos.
  • Core nodes: distribuyen la información cuando se usa HDFS (sistema de archivos distribuido).
  • Task nodes: se enfocan en procesamiento de tareas.

Estas piezas permiten separar responsabilidades: coordinación, almacenamiento distribuido y cómputo, optimizando el rendimiento del cluster.

¿Qué prácticas reducen costos y aseguran continuidad?

El diseño de instancias impacta costo y resiliencia. Elegir bien los tipos y el escalado evita interrupciones costosas.

  • Usa instancias tipo spot para nodos core y task: precio más bajo por subasta.
  • No uses spot para el nodo maestro: si hay un bid más alto, se podría caer el cluster.
  • Configura fallback a instancias por demanda si no hay spot: sube el precio, pero la carga no se afecta.
  • Activa autoscaling: a medida que crece el trabajo, aumenta la cantidad de nodos automáticamente.

¿Cuándo elegir EMR frente a Glue?

  • Si en Glue hay límite de 100 DPUs y el job es grande: divide el job en partes más pequeñas.
  • O usa EMR para más capacidad: ganarás escala, pero aumentan la carga de información y la administración del entorno.

¿Quieres compartir cómo organizas tus steps o qué configuraciones incluyes en tus Bootstrap Actions? Comenta tus experiencias y dudas para ayudar a otros a optimizar EMR.