Crear tu primer cluster de AWS EMR

Clase 30 de 52Curso de Big Data en AWS

Resumen

Aprende a crear un clúster de AWS EMR desde cero con seguridad, eficiencia y control. Aquí verás cómo elegir la versión adecuada, configurar steps con argumentos, dimensionar instancias y activar opciones de operación como CloudWatch, KMS y security groups. Todo con un enfoque práctico y claro.

¿Cómo configurar la versión y aplicaciones en AWS EMR?

Seleccionar correctamente la versión define qué herramientas tendrás disponibles. La elección impacta directamente tu flujo de trabajo y compatibilidad con librerías.

¿Qué versión elegir y por qué?

  • Revisa cambios entre versiones: herramientas incluidas y retiradas.
  • Ejemplo: versión reciente con TensorFlow 12.0 y Zeppelin 0.8.
  • Ejemplo: en 5.4 hay Zeppelin 7.0 y no está TensorFlow.
  • Para el ejercicio: EMR 5.20 con Hadoop, Spark 2.4 y Zeppelin.
  • Criterio clave: elige según las herramientas que necesites.

¿Cómo cargar configuraciones y metadatos?

  • Activa metadatos para tablas de Spark.
  • Define configuración de software en JSON.
  • Incluye acciones de bootstrap para personalizar el arranque.

¿Cómo definir steps y argumentos?

  • Agrega steps de forma gráfica.
  • Especifica argumentos: usa etiquetas como PRD o STG para ambientes.
  • Indica la ubicación del script de la aplicación.
  • Manejo de finalización del step:
  • Terminar el clúster si falla.
  • Cancelar y esperar acción manual.
  • Continuar con el siguiente step si falla.

¿Cómo dimensionar instancias y auto escalamiento?

La topología y el escalado determinan costo y rendimiento. Configura nodos, tipos de instancia y reglas de crecimiento con intención.

¿Qué tipos de nodos e instancias usar?

  • Modos de provisión: instancias uniformes o por flotas.
  • Nodos: master, core y task.
  • Ajusta el tipo de instancia desde la interfaz.
  • Ejemplo de laboratorio: 1 master y 2 core con M1 medium. Sin nodos task.
  • Estrategia de compra: bajo demanda o spot.

¿Cómo configurar auto escalamiento por memoria?

  • Límites: mínimo 2 nodos y máximo 10 nodos.
  • Escalado hacia arriba: cuando memoria disponible < 30%, agrega 1 o 2 instancias por periodo.
  • Escalado hacia abajo: cuando memoria disponible > 75%, elimina 2 instancias.
  • Regla fija: nunca bajar del mínimo configurado.
  • Nota práctica: se puede dejar sin configurar y operar bajo demanda.

¿Dónde guardar logs y cómo etiquetar?

  • Logs: se crea una carpeta por defecto y otra de Elastic Map Reduce dentro.
  • Agrega etiquetas para organizar recursos.
  • Define acciones de arranque adicionales si lo requieres.

¿Cómo asegurar, lanzar y operar el clúster?

Antes de crear, define el acceso, permisos y seguridad. Luego monitorea y itera desde la consola con total visibilidad.

¿Cómo acceder por SSH y web?

  • Llave de acceso: selecciona una para habilitar conexión SSH.
  • Sin llave: el clúster ejecuta trabajos, pero no podrás hacer SSH.
  • Acceso a Zeppelin: habilita conexión web en el security group.

¿Qué permisos, cifrado y seguridad aplicar?

  • Permisos: se crean tres roles predeterminados con lo necesario para EMR.
  • Cifrado: integración con KMS disponible.
  • Grupos de seguridad de EC2: personaliza puertos para instancias master y core.

¿Cómo monitorear, depurar y replicar?

  • Vista general: conexiones, ID de clúster, versión, roles y estado de nodos.
  • Red: subred y zona de disponibilidad.
  • Aplicaciones: lista de componentes instalados.
  • Monitorización: métricas con CloudWatch a nivel de hardware.
  • Escala en caliente: agrega o quita instancias desde la consola.
  • Eventos: historial útil para detectar errores y hacer debugging.
  • Steps: existe un step por defecto; puedes añadir más en ejecución.
  • Cambios: aplica nuevas configuraciones agregando un JSON y acciones de arranque.
  • Reproducibilidad: exporta el comando para ejecutar desde la CLI y recrear el clúster.

¿Tienes dudas sobre versiones, steps o auto escalamiento en EMR? Cuéntame en los comentarios y trabajamos una solución juntos.