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
- Introducció a Azure per a Spark
- Configuració de Spark amb Azure HDInsight
- Configuració de Spark amb Azure Databricks
- Comparació entre Azure HDInsight i Azure Databricks
- Exemple pràctic: Executar una aplicació Spark a Azure Databricks
- Exercicis pràctics
- 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.
- Configuració de Spark amb Azure HDInsight
Passos per configurar un clúster Spark amb Azure HDInsight:
-
Crear un compte d'Azure: Si no tens un compte d'Azure, registra't a Azure.
-
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.
-
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()
- Configuració de Spark amb Azure Databricks
Passos per configurar un clúster Spark amb Azure Databricks:
-
Crear un compte d'Azure: Si no tens un compte d'Azure, registra't a Azure.
-
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.
-
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".
-
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()
- 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 |
- Exemple pràctic: Executar una aplicació Spark a Azure Databricks
Passos per executar una aplicació Spark a Azure Databricks:
- Crear un notebook a Azure Databricks.
- Carregar dades: Pots carregar dades des d'Azure Blob Storage, Azure Data Lake Storage, o altres fonts de dades.
- Executar transformacions i accions Spark.
- 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")
- Exercicis pràctics
Exercici 1: Crear un clúster Spark a Azure HDInsight
- Segueix els passos descrits a la secció 2 per crear un clúster Spark a Azure HDInsight.
- 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
- Segueix els passos descrits a la secció 3 per crear un clúster Spark a Azure Databricks.
- 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.
Curs d'Apache Spark
Mòdul 1: Introducció a Apache Spark
Mòdul 2: Conceptes Bàsics de Spark
Mòdul 3: Processament de Dades amb Spark
Mòdul 4: Programació Avançada amb Spark
Mòdul 5: Optimització i Millora del Rendiment
- Comprendre les Tasques de Spark
- Emmagatzematge en Memòria i Persistència
- Gestió de Memòria
- Optimització d'Aplicacions Spark
Mòdul 6: Spark al Núvol
Mòdul 7: Aplicacions del Món Real i Estudis de Cas
- Processament de Dades en Temps Real
- Anàlisi de Big Data
- Pipelines d'Aprenentatge Automàtic
- Estudis de Cas