En este módulo, aprenderás cómo configurar y ejecutar Apache Spark en Google Cloud Platform (GCP). Google Cloud ofrece una infraestructura robusta y escalable que es ideal para ejecutar aplicaciones de procesamiento de datos a gran escala como Apache Spark.
Objetivos del Módulo
- Configurar un entorno de Google Cloud para ejecutar Spark.
- Desplegar un clúster de Spark en Google Cloud Dataproc.
- Ejecutar trabajos de Spark en Google Cloud.
- Optimizar y gestionar el clúster de Spark en GCP.
Requisitos Previos
- Cuenta activa en Google Cloud Platform.
- Conocimientos básicos de Apache Spark.
- Familiaridad con la línea de comandos y Google Cloud SDK.
Contenido
- Configuración del Entorno de Google Cloud
1.1 Crear una Cuenta en Google Cloud
Si aún no tienes una cuenta en Google Cloud, puedes registrarte en Google Cloud. Google ofrece un crédito gratuito para nuevos usuarios que puedes utilizar para experimentar con sus servicios.
1.2 Instalar Google Cloud SDK
El Google Cloud SDK es una herramienta que te permite interactuar con los servicios de Google Cloud desde la línea de comandos.
# Descargar e instalar Google Cloud SDK curl https://sdk.cloud.google.com | bash # Reiniciar la terminal o ejecutar el siguiente comando para inicializar el SDK exec -l $SHELL # Inicializar el SDK gcloud init
1.3 Configurar el Proyecto de Google Cloud
Después de instalar el SDK, necesitas configurar un proyecto en Google Cloud.
# Crear un nuevo proyecto gcloud projects create my-spark-project --set-as-default # Establecer el proyecto actual gcloud config set project my-spark-project
- Desplegar un Clúster de Spark en Google Cloud Dataproc
Google Cloud Dataproc es un servicio gestionado que facilita la creación y gestión de clústeres de Apache Spark y Hadoop.
2.1 Crear un Clúster de Dataproc
# Crear un clúster de Dataproc gcloud dataproc clusters create my-spark-cluster \ --region=us-central1 \ --zone=us-central1-a \ --master-machine-type=n1-standard-4 \ --worker-machine-type=n1-standard-4 \ --num-workers=2 \ --image-version=1.5-debian10
2.2 Verificar el Clúster
- Ejecutar Trabajos de Spark en Google Cloud
3.1 Subir Datos a Google Cloud Storage
Antes de ejecutar un trabajo de Spark, necesitas subir tus datos a Google Cloud Storage (GCS).
# Crear un bucket en GCS gsutil mb gs://my-spark-bucket # Subir datos al bucket gsutil cp local-data-file.csv gs://my-spark-bucket/
3.2 Ejecutar un Trabajo de Spark
# Enviar un trabajo de Spark al clúster de Dataproc gcloud dataproc jobs submit spark \ --cluster=my-spark-cluster \ --region=us-central1 \ --class=org.apache.spark.examples.SparkPi \ --jars=file:///usr/lib/spark/examples/jars/spark-examples.jar \ -- 1000
- Optimización y Gestión del Clúster de Spark
4.1 Escalar el Clúster
4.2 Monitorear el Clúster
Google Cloud proporciona herramientas de monitoreo como Stackdriver para supervisar el rendimiento del clúster.
- Ejercicio Práctico
Ejercicio: Procesar un Conjunto de Datos en GCP
- Subir Datos: Sube un archivo CSV a Google Cloud Storage.
- Crear Clúster: Despliega un clúster de Dataproc.
- Escribir un Script de Spark: Escribe un script de Spark que procese el archivo CSV.
- Ejecutar el Trabajo: Ejecuta el trabajo de Spark en el clúster de Dataproc.
- Escalar el Clúster: Escala el clúster para mejorar el rendimiento.
Solución
# Script de Spark para procesar un archivo CSV from pyspark.sql import SparkSession # Crear una sesión de Spark spark = SparkSession.builder.appName("GCP Example").getOrCreate() # Cargar el archivo CSV desde GCS df = spark.read.csv("gs://my-spark-bucket/local-data-file.csv", header=True, inferSchema=True) # Realizar algunas transformaciones df_filtered = df.filter(df['column_name'] > 100) # Guardar el resultado en GCS df_filtered.write.csv("gs://my-spark-bucket/output-data-file.csv") # Finalizar la sesión de Spark spark.stop()
Conclusión
En este módulo, has aprendido cómo configurar y ejecutar Apache Spark en Google Cloud Platform utilizando Google Cloud Dataproc. Ahora deberías ser capaz de desplegar un clúster de Spark, ejecutar trabajos de Spark y gestionar el clúster en GCP. En el siguiente módulo, exploraremos cómo ejecutar Spark en Kubernetes.
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