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.