Procesamiento de big data con Amazon EMR - Entorno de ejecución para Spark y Hive
Ejecuta trabajos Spark y consultas Hive en clústeres EMR, y presentamos la diferenciación con EMR Serverless y la optimización de costos con escalado gestionado.
Configuración del clúster EMR
Un clúster EMR se compone de un nodo maestro (gestión del clúster, coordinación de trabajos), nodos core (almacenamiento HDFS y procesamiento) y nodos task (solo procesamiento, sin almacenamiento). El nodo maestro ejecuta YARN ResourceManager y HDFS NameNode, coordinando la distribución de trabajos. Los nodos core almacenan datos en HDFS y ejecutan tareas de procesamiento. Los nodos task se agregan para capacidad de procesamiento adicional sin almacenamiento, siendo ideales para instancias Spot. EMR soporta múltiples frameworks como Spark, Hive, Presto, HBase y Flink, que se seleccionan al crear el clúster.
Ejecución de Spark y Hive
Spark en EMR se ejecuta sobre YARN y lee/escribe datos desde S3 mediante el conector EMRFS. EMRFS proporciona consistencia de lectura después de escritura para S3 y soporta cifrado del lado del servidor. Los trabajos Spark se envían con spark-submit o mediante EMR Steps. Hive proporciona una interfaz SQL sobre datos en S3 o HDFS, siendo adecuado para analistas que prefieren SQL sobre programación. El Metastore de Hive se puede externalizar a AWS Glue Data Catalog, compartiendo definiciones de tablas entre EMR, Athena y Redshift Spectrum.
EMR on EKS y escalado gestionado
EMR on EKS ejecuta trabajos Spark en clústeres EKS existentes, compartiendo la infraestructura de Kubernetes con otras cargas de trabajo. Esto es útil cuando la organización ya tiene inversión en EKS y quiere consolidar la gestión. El escalado gestionado de EMR ajusta automáticamente el número de nodos según la carga del trabajo, agregando nodos cuando hay tareas pendientes y eliminándolos cuando se completan. Combinado con instancias Spot para nodos task, se logra una reducción significativa de costos manteniendo el rendimiento.
Optimización de costos de EMR
El costo de EMR se compone del cargo por hora de EMR (aproximadamente 25% sobre el precio de EC2) más el costo de las instancias EC2. Para nodos task se recomienda usar instancias Spot (hasta 90% de descuento). Los clústeres transitorios (se crean para un trabajo y se terminan al completarse) eliminan costos de inactividad. EMR Serverless elimina la gestión de clústeres y cobra solo por los recursos consumidos durante la ejecución del trabajo. Para trabajos esporádicos o impredecibles, Serverless es más económico que mantener un clúster permanente.
Resumen
Amazon EMR proporciona un entorno gestionado para frameworks de big data como Spark y Hive. El escalado gestionado y las instancias Spot optimizan los costos, mientras que la integración con S3 y Glue Data Catalog facilita la construcción de data lakes. Para cargas de trabajo predecibles y de gran escala se recomienda EMR en clúster; para trabajos esporádicos, EMR Serverless ofrece simplicidad y eficiencia de costos.