Introducción
En este módulo, aprenderás cómo ejecutar Apache Spark en Microsoft Azure. Azure es una plataforma de computación en la nube que ofrece una variedad de servicios, incluyendo Azure Databricks, que es una plataforma de análisis de datos basada en Apache Spark. Este módulo cubrirá los siguientes temas:
- Configuración de Azure Databricks
- Creación de un Clúster de Spark en Azure
- Desarrollo y Ejecución de Aplicaciones Spark en Azure
- Monitoreo y Optimización de Trabajos Spark en Azure
- Configuración de Azure Databricks
Paso 1: Crear una Cuenta de Azure
Si aún no tienes una cuenta de Azure, sigue estos pasos para crear una:
- Visita el sitio web de Azure.
- Haz clic en "Comenzar gratis" y sigue las instrucciones para registrarte.
Paso 2: Crear un Workspace de Azure Databricks
- Inicia sesión en el portal de Azure.
- En el menú de la izquierda, selecciona "Crear un recurso".
- Busca "Azure Databricks" y selecciona "Crear".
- Completa los detalles del workspace:
- Nombre del workspace: Elige un nombre único.
- Suscripción: Selecciona tu suscripción de Azure.
- Grupo de recursos: Crea un nuevo grupo de recursos o selecciona uno existente.
- Ubicación: Selecciona la región más cercana a ti.
- Haz clic en "Revisar + crear" y luego en "Crear".
- Creación de un Clúster de Spark en Azure
Paso 1: Acceder al Workspace de Azure Databricks
- En el portal de Azure, navega a tu nuevo workspace de Azure Databricks.
- Haz clic en "Iniciar Workspace".
Paso 2: Crear un Clúster
- En el portal de Azure Databricks, selecciona "Clústeres" en el menú de la izquierda.
- Haz clic en "Crear Clúster".
- Completa los detalles del clúster:
- Nombre del clúster: Elige un nombre descriptivo.
- Versión de Databricks Runtime: Selecciona la versión de Spark que deseas usar.
- Tipo de clúster: Selecciona "Standard".
- Configuración de nodos: Elige el número y tipo de nodos de trabajo.
- Haz clic en "Crear Clúster".
- Desarrollo y Ejecución de Aplicaciones Spark en Azure
Paso 1: Crear un Notebook
- En el portal de Azure Databricks, selecciona "Workspaces" en el menú de la izquierda.
- Haz clic en el botón "Crear" y selecciona "Notebook".
- Completa los detalles del notebook:
- Nombre: Elige un nombre para tu notebook.
- Lenguaje: Selecciona el lenguaje de programación (Scala, Python, SQL, R).
- Haz clic en "Crear".
Paso 2: Escribir y Ejecutar Código Spark
A continuación, se muestra un ejemplo de código en Python para contar las palabras en un archivo de texto:
# Cargar el archivo de texto en un RDD text_file = sc.textFile("/databricks-datasets/samples/docs/README.md") # Contar las palabras word_counts = text_file.flatMap(lambda line: line.split(" ")) \ .map(lambda word: (word, 1)) \ .reduceByKey(lambda a, b: a + b) # Mostrar los resultados word_counts.collect()
Explicación del Código
- Cargar el archivo de texto:
sc.textFile
carga el archivo de texto en un RDD. - Contar las palabras:
flatMap
divide cada línea en palabras.map
crea un par (palabra, 1) para cada palabra.reduceByKey
suma los valores para cada palabra.
- Mostrar los resultados:
collect
devuelve los resultados al driver.
- Monitoreo y Optimización de Trabajos Spark en Azure
Monitoreo de Trabajos
- En el portal de Azure Databricks, selecciona "Trabajos" en el menú de la izquierda.
- Aquí puedes ver el estado de tus trabajos, incluyendo el tiempo de ejecución y los recursos utilizados.
Optimización de Trabajos
- Caché y Persistencia: Usa
persist
ycache
para almacenar RDDs en memoria y mejorar el rendimiento. - Particiones: Ajusta el número de particiones para equilibrar la carga de trabajo.
- Configuración del Clúster: Ajusta la configuración del clúster para optimizar el uso de recursos.
Conclusión
En este módulo, has aprendido cómo ejecutar Apache Spark en Azure utilizando Azure Databricks. Has configurado un workspace, creado un clúster, desarrollado y ejecutado aplicaciones Spark, y monitoreado y optimizado tus trabajos. Con estos conocimientos, estás listo para aprovechar la potencia de Apache Spark en la nube de Azure.
Ejercicio Práctico
Ejercicio: Crea un notebook en Azure Databricks y escribe un programa en Python que lea un archivo CSV, realice algunas transformaciones y guarde los resultados en un nuevo archivo CSV.
Solución:
# Cargar el archivo CSV en un DataFrame df = spark.read.csv("/databricks-datasets/samples/population-vs-price/data_geo.csv", header=True, inferSchema=True) # Realizar algunas transformaciones df_filtered = df.filter(df['2014 Population estimate'] > 1000000) df_selected = df_filtered.select("Region", "2014 Population estimate", "2015 median sales price") # Guardar los resultados en un nuevo archivo CSV df_selected.write.csv("/tmp/filtered_population_vs_price.csv", header=True)
Explicación del Código
- Cargar el archivo CSV:
spark.read.csv
carga el archivo CSV en un DataFrame. - Filtrar los datos:
filter
selecciona las filas donde la población estimada en 2014 es mayor a 1,000,000. - Seleccionar columnas:
select
elige las columnas relevantes. - Guardar los resultados:
write.csv
guarda el DataFrame resultante en un nuevo archivo CSV.
Con esto, has completado el módulo sobre cómo ejecutar Spark en Azure. ¡Felicidades!
Curso de Apache Spark
Módulo 1: Introducción a Apache Spark
Módulo 2: Conceptos Básicos de Spark
- RDDs (Conjuntos de Datos Distribuidos Resilientes)
- Transformaciones y Acciones
- DataFrames de Spark
- Spark SQL
Módulo 3: Procesamiento de Datos con Spark
Módulo 4: Programación Avanzada en Spark
Módulo 5: Ajuste y Optimización del Rendimiento
- Entendiendo los Trabajos de Spark
- Caché y Persistencia
- Gestión de Memoria
- Optimizando Aplicaciones Spark
Módulo 6: Spark en la Nube
- Ejecutando Spark en AWS
- Ejecutando Spark en Azure
- Ejecutando Spark en Google Cloud
- Spark con Kubernetes
Módulo 7: Aplicaciones del Mundo Real y Estudios de Caso
- Procesamiento de Datos en Tiempo Real
- Analítica de Big Data
- Pipelines de Aprendizaje Automático
- Estudios de Caso