Bienvenida e introducción al curso

1

Big Data en la Nube: Análisis, Transformación y Seguridad

2

Transformación de Datos en Cloud: Automatización y Seguridad

3

Big Data en la Nube: Escalabilidad, Automatización y Eficiencia

4

Almacenamiento y Procesamiento de Datos en la Nube

5

Comparativa de AWS y GCP para proyectos BigData

Arquitecturas

6

Arquitectura Lambda para Procesamiento de Datos en la Nube

7

Arquitectura Capa: Procesamiento de Datos en Tiempo Real

8

Arquitectura Batch: Procesamiento de Datos Histórico en la Nube

Extracción de información

9

Extracción de Datos a la Nube: Estrategias y Herramientas

10

Uso de Python y AWS Cloud9 para Proyectos de Big Data

11

Uso de Boto3 para Servicios AWS en Python

12

Integración de AWS API Gateway en Proyectos de Big Data

13

Uso de Storage Gateway para Integración de Datos en la Nube

14

Procesamiento de Datos en Tiempo Real con AWS Kinesis Data Stream

15

Creación de Kinesis Data Streams en AWS

16

Despliegue de Kinesis con AWS CloudFormation

17

Entrega y Transformación de Datos con Kinesis Firehose en AWS

18

Configuración de Kinesis Firehose en AWS paso a paso

19

Configuración Básica de Amazon Kinesis Firehose en AWS

20

AWS MSK: Implementación y Gestión de Apache Kafka en la Nube

21

Despliegue de Clúster MSK en AWS paso a paso

Transformación de Información

22

Transformación de Datos con AWS Glue: ETL y Catálogo de Metadatos

23

Instalación y Configuración de Apache Zeppelin para AWS Glue

24

Configuración de Developer Endpoint en AWS Glue para Apache Zeppelin

25

Conexión y configuración de Apache Zeppelin para ETL en AWS

26

Creación de un ETL con AWS Glue: Crawlers y Catalogación de Datos

27

Configuración y Ejecución de ETL en AWS Glue paso a paso

28

Creación y Ejecución de ETL con AWS Glue y S3

29

Procesamiento de Datos con EMR en AWS

30

Creación de un clúster EMR en AWS paso a paso

31

Conexión y Configuración de Zeppelin en Clúster EMR

32

Automatización de Clústeres EMR con Plantillas de CloudFormation

33

AWS Lambda en Proyectos de Big Data en Tiempo Real

34

Uso de Lambda en Arquitecturas de Big Data Real Time y Batch

35

Configuración de Funciones Lambda para Big Data en AWS

Carga de Información

36

Consultas SQL en Big Data con AWS Athena y S3

37

Consultas SQL en S3 con AWS Athena y Glue Catalog

38

AWS Redshift: Almacenamiento y Análisis de Datos Masivos

39

Configuración de Amazon Redshift en AWS paso a paso

40

Lake Formation: Automatización y Seguridad en Gestión de Data Lakes

Consumo de información

41

Implementación de Elasticsearch en AWS: Búsqueda y Visualización

42

Despliegue de Clúster Elasticsearch en AWS Paso a Paso

43

Visualización de Datos con Kibana y Elasticsearch en AWS

44

Visualización de Datos en AWS con QuickSight

45

Habilitación y uso de QuickSight en AWS

Seguridad, Orquestación y Automatización

46

Seguridad en Big Data con AWS: Cifrado, Permisos y Monitoreo

47

Seguridad de Datos en AWS con Amazon Macie

48

Habilitación y Configuración de AWS Macie para Gestión de Datos Seguros

49

Orquestación de ETLs con Apache Airflow y Python en Big Data

50

Despliegue y Orquestación de Tareas con Google Cloud Composer

51

Arquitecturas de Big Data en Cloud: Batch y Tiempo Real

Clase pública

52

Fundamentos de Big Data: Volumen, Velocidad, Variedad, Veracidad y Valor

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Curso de Big Data en AWS

Curso de Big Data en AWS

Carlos Andrés Zambrano Barrera

Carlos Andrés Zambrano Barrera

Procesamiento de Datos con EMR en AWS

29/52
Recursos

Elastic MapReduce o EMR es un clúster en el cual podemos correr cargas muy grandes de trabajo.

  • Estos clusters son instancias de EC2 basadas en Hadoop.
  • Provee interacción con otros servicios de AWS como S3, RedShift, DynamoDB y Kinesis.
  • Contamos con acciones Bootstrap, estos son scripts que se van a ejecutar al iniciar un clúster.
  • Podemos ejecutar de manera ordenada distintos scripts utilizando Step.

Aportes 6

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

EMR = Elastic Map Reduce.

Cuando hablemos de EMR, pensemos en un clúster en el cual podemos correr cargas de trabajo muy grandes; es obvio que al ser un clúster tendremos unas instancias dedicadas, mayor administración sobre nuestro clúster y mayor flexibilidad.

EMR es un servicio que nos permite crear clústers que por detrás serán instancias EC2 basadas en Hadoop; en estos clústers podremos ejecutar diferentes cargas de trabajo. Estas cargas de trabajo pueden ser MapReduce, Spark, Pig, Presto, Hive, Impala, Flink, TensorFlow, Zeppelin, diferentes y muchas alternativas de Open Source pueden correr en estos proyectos, y cuando configuremos el clúster podremos seleccionar cuáles de ellos necesitamos.

Este servicio nos provee integraciones con diferentes servicios de AWS como S3, RedShift, DynamoDB y Kinesis.

En el clúster desplegado por este servicio, podemos correr cualquier tipo de tareas basadas en Spark; es decir, podríamos correr los ETLs que hacemos en Glue, pero cambiarían algunas cosas en la configuración debido a que Glue utiliza dynamic frames (son más propios de AWS para manejar Glue) mientras que EMR usa otro concepto que es data frames que es más propio de Spark. Habiendo dicho esto, podríamos también hacer aquí transformaciones, y podríamos conectarnos a Notebooks para consultar nuestra información desde EMR.

Conceptos

  • Bootstrap actions: Al momento de desplegar el clúster, podemos especificar ciertas acciones que necesitemos que se ejecuten al inicio; acciones como ejecuciones de scripts particulares, cambiar los puertos de conexión, o agregarle configuraciones muy personalizadas al clúster. Estas tareas se ejecutan antes de que el clúster esté completamente productivo.
  • Steps: Nos permiten ejecutar nuestras cargas de trabajo en los clústers de EMR de forma ordenada.
  • Clúster: Está compuesto de un Master Node, quien orquestará a los otros Nodes; Core Nodes que se encargan de distribuir la información cuando usamos un sistema de archivos como HDFS (Sistema de archivos distribuido), y Task Nodes que son los encargados del procesamiento.
    <imagen>

Recomendaciones

  • A nivel de instancias, utilizar instancias tipo Spot para los Core Nodes y los Task Nodes.
  • El Master Node no debe ser desplegado en una instancia Spot.

Es así como EMR es un servicio muy importante donde podemos correr cargas de trabajo gigantescas, porque tenemos la libertad de crear las instancias, elegir el tipo y la cantidad.

En situaciones como que en Glue hay un límite de 100 DPUs, pero nuestro job es muy grande, AWS recomienda dividir nuestro job en jobs más pequeños para no consumir tantas DPUs o trabajar con EMR en donde tenemos más capacidad pero nuestra carga de información y nuestra carga administrativa aumentará.

se puede iniciar y apagar el servicio de EMR ? al igual que el EC2? para evitar costos innecesarios.

### **AWS EMR (Elastic MapReduce)** AWS **Elastic MapReduce (EMR)** es un servicio en la nube que facilita el procesamiento de **grandes volúmenes de datos** utilizando **frameworks de Big Data** como **Apache Spark, Hadoop, Hive, Presto, HBase y Flink**. Se usa principalmente para análisis de datos, machine learning y procesamiento ETL. ## **🚀 Características clave de AWS EMR** 1. **Escalabilidad automática**: Ajusta la capacidad de los clusters según la demanda. 2. **Soporte para múltiples frameworks**: Hadoop, Spark, Hive, Presto, Flink, etc. 3. **Integración con AWS**: Se conecta fácilmente con S3, RDS, DynamoDB, Redshift y otros servicios. 4. **Administración simplificada**: AWS gestiona la configuración y el mantenimiento de los clusters. 5. **Pago por uso**: Paga solo por los recursos utilizados. ## **📌 Arquitectura de EMR** Un clúster de EMR está compuesto por **tres tipos de nodos**: 1. **Master Node**: Controla la ejecución del clúster y distribuye tareas. 2. **Core Nodes**: Procesan los datos y almacenan información en HDFS. 3. **Task Nodes** *(opcional)*: Solo ejecutan tareas sin almacenar datos. ## **💻 Pasos para crear un clúster EMR en AWS** ### **1️⃣ Configuración inicial** * Ve a la **consola de AWS** y busca **Amazon EMR**. * Haz clic en **"Create cluster"**. ### **2️⃣ Elegir un método de despliegue** * **EMR on EC2**: Cluster en instancias EC2. * **EMR on EKS**: Cluster gestionado en Kubernetes. * **EMR Serverless**: Ejecución sin necesidad de administrar servidores. ### **3️⃣ Configurar el clúster** * **Nombre del clúster**: Ej. `mi-cluster-emr`. * **Versión de EMR**: Ej. `6.9.0` (con Apache Spark, Hadoop, etc.). * **Aplicaciones**: Selecciona los frameworks que necesitas (Spark, Hive, HBase, Presto, etc.). * **Tipo de instancias EC2**: Ej. `m5.xlarge` (depende de la carga de trabajo). * **Cantidad de nodos**: * 1 Master Node * 2+ Core Nodes (según el tamaño del clúster) ### **4️⃣ Configurar almacenamiento** * **S3**: Para almacenar los datos de entrada y salida. * **HDFS**: Sistema de archivos distribuido dentro del clúster. ### **5️⃣ Configurar networking** * Selecciona la **VPC**, **subred** y **grupo de seguridad**. ### **6️⃣ Opciones avanzadas** * **Auto-terminación**: Configura si el clúster debe apagarse tras completar la tarea. * **Spot Instances**: Reduce costos usando instancias Spot. * **IAM Roles**: Define permisos para acceder a S3, Glue, DynamoDB, etc. ### **7️⃣ Lanzar el clúster** * Revisa la configuración y haz clic en **"Create cluster"**. ## **📊 Ejecutar trabajos en EMR** ### **1️⃣ Desde la consola AWS** * Ve a **Clusters EMR** > **Actions** > **Submit Step**. * Elige el tipo de trabajo (`Spark`, `Hive`, `Hadoop`, etc.). * Sube el código o referencia un archivo en **S3**. ### **2️⃣ Desde AWS CLI** Ejecutar un script PySpark en EMR: aws emr add-steps --cluster-id j-XXXX \\ \--steps Type=Spark,Name="MySparkJob",ActionOnFailure=CONTINUE,Args=\[--deploy-mode,client,--master,yarn,s3://mi-bucket/scripts/job.py] ### **3️⃣ Con Jupyter Notebook en EMR** * Activa **EMR Notebooks** para ejecutar código interactivo en un **Notebook Jupyter**. ## **🛠 Integraciones con otros servicios de AWS** ✅ **S3**: Almacenamiento de datos de entrada y salida. ✅ **Glue**: Catálogo de datos y transformación ETL. ✅ **Athena**: Consulta de datos sin servidores en S3. ✅ **Redshift**: Integración con data warehouses. ✅ **CloudWatch**: Monitoreo y logs del clúster. ## **📌 Casos de uso de EMR** ✅ **Análisis de datos masivos**: Logs, sensores IoT, datos de redes sociales. ✅ **ETL**: Extracción, transformación y carga de grandes volúmenes de datos. ✅ **Machine Learning**: Entrenamiento de modelos con Spark MLlib. ✅ **Procesamiento en tiempo real**: Con Apache Flink o Spark Streaming. ## **💰 Costos de AWS EMR** * Basado en **pago por hora** según el tipo de instancia EC2 y el número de nodos. * Puedes ahorrar usando **Spot Instances** o **EMR Serverless**. 💡 **Simula los costos en la calculadora de AWS**: [🔗 AWS Pricing Calculator](https://calculator.aws/#/) ## **🎯 Conclusión** AWS EMR es una **solución poderosa y escalable** para procesar **Big Data** en la nube con **Spark, Hadoop y otros frameworks**. Su facilidad de integración con S3, Glue, Redshift y otros servicios lo hace ideal para empresas que manejan grandes volúmenes de información.

Elastic MapReduce o EMR es un clúster en el cual podemos correr cargas muy grandes de trabajo.

Estos clusters son instancias de EC2 basadas en Hadoop.
Provee interacción con otros servicios de AWS como S3, RedShift, DynamoDB y Kinesis.
Contamos con acciones Bootstrap, estos son scripts que se van a ejecutar al iniciar un clúster.
Podemos ejecutar de manera ordenada distintos scripts utilizando Step.

es muy potente EMR
Amazon EMR is a web service that makes it easy to process large amounts of data efficiently. Amazon EMR uses Hadoop processing combined with several AWS products to do such tasks as web indexing, data mining, log file analysis, machine learning, scientific simulation, and data warehousing.