En aquest tema, aprendrem com configurar i executar Apache Spark a la plataforma de núvol Microsoft Azure. Azure proporciona diversos serveis que faciliten la implementació i gestió de clústers Spark, com Azure HDInsight i Azure Databricks. Explorarem aquests serveis i veurem com podem utilitzar-los per executar aplicacions Spark de manera eficient.

Continguts

  1. Introducció a Azure per a Spark
  2. Configuració de Spark amb Azure HDInsight
  3. Configuració de Spark amb Azure Databricks
  4. Comparació entre Azure HDInsight i Azure Databricks
  5. Exemple pràctic: Executar una aplicació Spark a Azure Databricks
  6. Exercicis pràctics

  1. Introducció a Azure per a Spark

Microsoft Azure és una plataforma de núvol que ofereix una àmplia gamma de serveis per a computació, emmagatzematge, bases de dades, xarxes i molt més. Per executar Spark a Azure, tenim dues opcions principals:

  • Azure HDInsight: Un servei de clúster de big data que suporta Apache Spark, Hadoop, Hive, HBase, Storm, Kafka, i altres tecnologies de big data.
  • Azure Databricks: Una plataforma d'anàlisi de dades basada en Apache Spark, optimitzada per a Azure, que proporciona una interfície d'usuari fàcil d'utilitzar i integració amb altres serveis d'Azure.

  1. Configuració de Spark amb Azure HDInsight

Passos per configurar un clúster Spark amb Azure HDInsight:

  1. Crear un compte d'Azure: Si no tens un compte d'Azure, registra't a Azure.

  2. Crear un clúster HDInsight:

    • Accedeix al portal d'Azure.
    • Selecciona "Crear una recurs" i busca "HDInsight".
    • Selecciona "HDInsight" i fes clic a "Crear".
    • Omple els detalls del clúster, com el nom, la subscripció, el grup de recursos, la ubicació, etc.
    • Selecciona "Spark" com a tipus de clúster.
    • Configura les opcions de seguretat, xarxa i emmagatzematge segons les teves necessitats.
    • Revisa i crea el clúster.
  3. Connectar-se al clúster:

    • Un cop creat el clúster, pots connectar-te a ell utilitzant SSH o el portal d'Azure.
    • Pots utilitzar el Jupyter Notebook integrat per executar codi Spark.

Exemple de codi Spark en Jupyter Notebook:

from pyspark.sql import SparkSession

# Crear una sessió Spark
spark = SparkSession.builder.appName("example").getOrCreate()

# Crear un DataFrame
data = [("Alice", 34), ("Bob", 45), ("Cathy", 29)]
columns = ["Name", "Age"]
df = spark.createDataFrame(data, columns)

# Mostrar el DataFrame
df.show()

  1. Configuració de Spark amb Azure Databricks

Passos per configurar un clúster Spark amb Azure Databricks:

  1. Crear un compte d'Azure: Si no tens un compte d'Azure, registra't a Azure.

  2. Crear un espai de treball Databricks:

    • Accedeix al portal d'Azure.
    • Selecciona "Crear una recurs" i busca "Azure Databricks".
    • Selecciona "Azure Databricks" i fes clic a "Crear".
    • Omple els detalls de l'espai de treball, com el nom, la subscripció, el grup de recursos, la ubicació, etc.
    • Revisa i crea l'espai de treball.
  3. Crear un clúster Databricks:

    • Accedeix a l'espai de treball Databricks.
    • Selecciona "Clusters" i fes clic a "Create Cluster".
    • Omple els detalls del clúster, com el nom, la versió de Spark, el tipus de màquina, etc.
    • Fes clic a "Create Cluster".
  4. Crear un notebook i executar codi Spark:

    • Selecciona "Workspace" i fes clic a "Create" -> "Notebook".
    • Omple els detalls del notebook, com el nom i el llenguatge (Scala, Python, SQL, R).
    • Executa codi Spark al notebook.

Exemple de codi Spark en un notebook Databricks:

from pyspark.sql import SparkSession

# Crear una sessió Spark
spark = SparkSession.builder.appName("example").getOrCreate()

# Crear un DataFrame
data = [("Alice", 34), ("Bob", 45), ("Cathy", 29)]
columns = ["Name", "Age"]
df = spark.createDataFrame(data, columns)

# Mostrar el DataFrame
df.show()

  1. Comparació entre Azure HDInsight i Azure Databricks

Característica Azure HDInsight Azure Databricks
Facilitat d'ús Requereix més configuració manual Interfície d'usuari intuïtiva i fàcil d'usar
Integració Integració amb altres serveis d'Azure Integració profunda amb serveis d'Azure
Rendiment Depèn de la configuració del clúster Optimitzat per a rendiment amb Spark
Cost Pot ser més econòmic per a grans clústers Pot ser més costós però amb millor rendiment
Casos d'ús Big data, ETL, anàlisi de dades Anàlisi de dades, machine learning, streaming

  1. Exemple pràctic: Executar una aplicació Spark a Azure Databricks

Passos per executar una aplicació Spark a Azure Databricks:

  1. Crear un notebook a Azure Databricks.
  2. Carregar dades: Pots carregar dades des d'Azure Blob Storage, Azure Data Lake Storage, o altres fonts de dades.
  3. Executar transformacions i accions Spark.
  4. Guardar els resultats: Pots desar els resultats a Azure Blob Storage, Azure Data Lake Storage, o altres destinacions.

Exemple de codi complet:

from pyspark.sql import SparkSession

# Crear una sessió Spark
spark = SparkSession.builder.appName("example").getOrCreate()

# Carregar dades des d'Azure Blob Storage
df = spark.read.csv("wasbs://<container>@<account>.blob.core.windows.net/<file>.csv", header=True, inferSchema=True)

# Realitzar transformacions
df_filtered = df.filter(df['Age'] > 30)

# Mostrar els resultats
df_filtered.show()

# Desar els resultats a Azure Blob Storage
df_filtered.write.csv("wasbs://<container>@<account>.blob.core.windows.net/<output>.csv")

  1. Exercicis pràctics

Exercici 1: Crear un clúster Spark a Azure HDInsight

  1. Segueix els passos descrits a la secció 2 per crear un clúster Spark a Azure HDInsight.
  2. Connecta't al clúster i executa un codi Spark simple per crear un DataFrame i mostrar-lo.

Exercici 2: Crear un clúster Spark a Azure Databricks

  1. Segueix els passos descrits a la secció 3 per crear un clúster Spark a Azure Databricks.
  2. Crea un notebook i executa un codi Spark per carregar dades, realitzar transformacions i desar els resultats.

Solucions

Solució a l'Exercici 1:

from pyspark.sql import SparkSession

# Crear una sessió Spark
spark = SparkSession.builder.appName("example").getOrCreate()

# Crear un DataFrame
data = [("Alice", 34), ("Bob", 45), ("Cathy", 29)]
columns = ["Name", "Age"]
df = spark.createDataFrame(data, columns)

# Mostrar el DataFrame
df.show()

Solució a l'Exercici 2:

from pyspark.sql import SparkSession

# Crear una sessió Spark
spark = SparkSession.builder.appName("example").getOrCreate()

# Carregar dades des d'Azure Blob Storage
df = spark.read.csv("wasbs://<container>@<account>.blob.core.windows.net/<file>.csv", header=True, inferSchema=True)

# Realitzar transformacions
df_filtered = df.filter(df['Age'] > 30)

# Mostrar els resultats
df_filtered.show()

# Desar els resultats a Azure Blob Storage
df_filtered.write.csv("wasbs://<container>@<account>.blob.core.windows.net/<output>.csv")

Conclusió

En aquest tema, hem après com configurar i executar Apache Spark a Microsoft Azure utilitzant Azure HDInsight i Azure Databricks. Hem vist els passos per crear clústers, executar codi Spark i desar els resultats. També hem comparat les dues opcions per ajudar-te a triar la millor solució per a les teves necessitats. Finalment, hem proporcionat exercicis pràctics per reforçar els conceptes apresos.

© Copyright 2024. Tots els drets reservats