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

  1. 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

  1. 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

# Listar clústeres de Dataproc
gcloud dataproc clusters list

  1. 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

  1. Optimización y Gestión del Clúster de Spark

4.1 Escalar el Clúster

# Añadir más nodos al clúster
gcloud dataproc clusters update my-spark-cluster \
    --num-workers=4

4.2 Monitorear el Clúster

Google Cloud proporciona herramientas de monitoreo como Stackdriver para supervisar el rendimiento del clúster.

# Acceder a la consola de monitoreo
gcloud console

  1. Ejercicio Práctico

Ejercicio: Procesar un Conjunto de Datos en GCP

  1. Subir Datos: Sube un archivo CSV a Google Cloud Storage.
  2. Crear Clúster: Despliega un clúster de Dataproc.
  3. Escribir un Script de Spark: Escribe un script de Spark que procese el archivo CSV.
  4. Ejecutar el Trabajo: Ejecuta el trabajo de Spark en el clúster de Dataproc.
  5. 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.

© Copyright 2024. Todos los derechos reservados