Limitazioni e considerazioni di Dataproc Serverless
- I job Spark vengono eseguiti con l'identità dell'account di servizio, non l'identità dell'utente che invia l'email.
Prima di iniziare
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Dataproc API.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Dataproc API.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
Installa il plug-in JupyterLab di Dataproc
Puoi installare e utilizzare il plug-in JupyterLab di Dataproc su una macchina o una VM che ha accesso a da servizi Google, ad esempio il tuo computer locale o un Istanza VM di Compute Engine.
Per installare il plug-in, procedi nel seguente modo:
Assicurati che
Python 3.8+
sia installato sulla macchina. Puoi scaricare e installare Python dapython.org/downloads
Verifica l'installazione di Python 3.8 e versioni successive.
python3 --version
Installa
JupyterLab 3.6.3+
sulla macchina.pip3 install --upgrade jupyterlab
Verificare l'installazione di JupyterLab 3.6.3 o versioni successive.
pip3 show jupyterlab
Installa il plug-in JupyterLab di Dataproc.
pip3 install dataproc-jupyter-plugin
Se la tua versione di JupyterLab è precedente a
4.0.0
, abilita il plug-in .jupyter server extension enable dataproc_jupyter_plugin
-
jupyter lab
Nel tuo browser si apre la pagina Avvio app JupyterLab. Contiene una sezione Job e sessioni Dataproc. Può contenere anche Sezioni Blocchi note serverless di Dataproc e Blocchi note del cluster Dataproc se hai accesso ai blocchi note serverless o ai cluster Dataproc con il componente facoltativo Jupyter in esecuzione nel tuo progetto.
Per impostazione predefinita, viene eseguita la sessione Dataproc Serverless per Spark Interactive nel progetto e nella regione che hai impostato quando hai eseguito
gcloud init
in Prima di iniziare. Puoi modificare il progetto le impostazioni della regione per le tue sessioni Impostazioni JupyterLab > Impostazioni di Dataproc.
Creazione di un modello di runtime serverless Dataproc
Modelli di runtime serverless Dataproc (chiamati anche modelli session
)
contengono le impostazioni di configurazione per l'esecuzione di codice Spark in una sessione. Puoi
creare e gestire modelli di runtime utilizzando Jupyterlab o gcloud CLI.
JupyterLab
Fai clic sulla scheda
New runtime template
in Blocchi note serverless di Dataproc della pagina Avvio app JupyterLab.Compila il modulo Modello di runtime.
Specifica un Nome visualizzato e una Descrizione, quindi inserisci o conferma le altre impostazioni.
Note:
Configurazione di rete: la subnet deve Avere l'accesso privato Google abilitato e deve consentire la comunicazione nella subnet su tutte le porte (vedi Configurazione di rete Dataproc Serverless per Spark).
Se la subnet della rete
default
per la regione configurata al momento hai eseguitogcloud init
in Prima di iniziare non è abilitato per l'accesso privato Google:- Abilitala per l'accesso privato Google oppure
- Seleziona un'altra rete con una subnet a livello di regione in cui è abilitato l'accesso privato Google. Puoi cambiare la regione utilizzata da Dataproc Serverless da Impostazioni > JupyterLab Impostazioni di Dataproc.
Metastore: per utilizzare un Servizio Dataproc Metastore nelle tue sessioni, seleziona l'ID progetto, la regione e il servizio del metastore.
Tempo di inattività massimo: il tempo massimo di inattività del blocco note prima che la sessione abbia terminato. Intervallo consentito: da 10 minuti a 336 ore (14 giorni).
Tempo massimo della sessione:la durata massima di una sessione prima della sessione è terminato. Intervallo consentito: da 10 minuti a 336 ore (14 giorni).
PHS: puoi selezionare una delle opzioni disponibili Server di cronologia Spark permanente per consentirti di accedere ai log di sessione durante e dopo le sessioni.
Proprietà Spark: fai clic su Aggiungi proprietà per ogni proprietà da impostare. per le sessioni Spark serverless. Consulta: Proprietà Spark un elenco delle proprietà Spark supportate e non supportate, tra cui Proprietà di runtime, risorse e scalabilità automatica di Spark.
Etichette: fai clic su Aggiungi etichetta per ogni etichetta da impostare. sulle tue sessioni Spark serverless.
Visualizza i modelli di runtime in Impostazioni > Impostazioni di Dataproc .
- Puoi eliminare un modello dal menu Azione.
Fai clic su Salva.
Apri e ricarica la pagina Avvio app JupyterLab per visualizzare il modello di blocco note salvato nella pagina Avvio app JupyterLab.
gcloud
Creare un file YAML con la configurazione del tuo modello di runtime.
YAML semplice
environmentConfig: executionConfig: networkUri: default jupyterSession: kernel: PYTHON displayName: Team A labels: purpose: testing description: Team A Development Environment
YAML complesso
environmentConfig: executionConfig: serviceAccount: sa1 # Choose either networkUri or subnetworkUri networkUri: default subnetworkUri: subnet networkTags: - tag1 kmsKey: key1 idleTtl: 3600s ttl: 14400s stagingBucket: staging-bucket peripheralsConfig: metastoreService: projects/my-project-id/locations/us-central1/services/my-metastore-id sparkHistoryServerConfig: dataprocCluster: projects/my-project-id/regions/us-central1/clusters/my-cluster-id jupyterSession: kernel: PYTHON displayName: Team A labels: purpose: testing runtimeConfig: version: "1.1" containerImage: gcr.io/my-project-id/my-image:1.0.1 properties: "p1": "v1" description: Team A Development Environment
Se la subnet della rete
default
per la regione configurata al momento hai eseguitogcloud init
in Prima di iniziare non è abilitato per l'accesso privato Google:- Abilitala per l'accesso privato Google oppure
- Seleziona un'altra rete con una subnet a livello di regione in cui è abilitato l'accesso privato Google. Puoi cambiare la regione utilizzata da Dataproc Serverless da Impostazioni > JupyterLab Impostazioni di Dataproc.
Crea un modello di sessione (runtime) dal file YAML eseguendo questo comando gcloud beta dataproc session-templates import in locale o in Cloud Shell:
gcloud beta dataproc session-templates import TEMPLATE_ID \ --source=YAML_FILE \ --project=PROJECT_ID \ --location=REGION
- Consulta gcloud beta dataproc session-templates dei comandi per descrivere, elencare, esportare ed eliminare modelli di sessione.
Avvia e gestisci blocchi note
Dopo aver installato il plug-in JupyterLab di Dataproc, puoi fare clic sulle schede dei modelli nella pagina Avvio app di JupyterLab per:
avvia un blocco note Jupyter su Dataproc serverless
La sezione Blocchi note serverless di Dataproc nella pagina Avvio app JupyterLab mostra il modello di blocco note le schede che mappano ai modelli di runtime Dataproc Serverless (vedi Crea un modello di runtime serverless di Dataproc).
Fai clic su una scheda per creare una sessione Dataproc Serverless avviare un blocco note. Quando la creazione della sessione è completata e il blocco note il kernel è pronto per l'uso, lo stato cambia dalle ore
Unknown
alle oreIdle
.Scrivere e testare il codice del blocco note.
Copia e incolla il seguente codice PySpark
Pi estimation
nella cella del blocco note PySpark, quindi premi Maiusc+Invio per eseguire il codice.import random def inside(p): x, y = random.random(), random.random() return x*x + y*y < 1 count = sc.parallelize(range(0, 10000)) .filter(inside).count() print("Pi is roughly %f" % (4.0 * count / 10000))
Risultato blocco note:
Dopo aver creato e utilizzato un blocco note, puoi terminare la sessione del blocco note facendo clic su Chiudi kernel dalla scheda Kernel.
- Se non termini la sessione, Dataproc la termina quando scade il timer di inattività della sessione. Puoi configurare la sessione il tempo di inattività nel configurazione del modello di runtime. Il tempo di inattività predefinito della sessione è di un'ora.
avvia un blocco note su un cluster Dataproc su Compute Engine
Se hai creato un cluster Dataproc su Compute Engine Jupyter, La pagina Avvio app di JupyterLab contiene una Sezione Blocco note del cluster Dataproc con schede kernel preinstallate.
Per avviare un blocco note Jupyter su Dataproc on Cluster Compute Engine:
Fai clic su una scheda nella sezione Blocco note del cluster Dataproc.
Quando lo stato del kernel passa da
Unknown
aIdle
, puoi a scrivere ed eseguire il codice del blocco note.Dopo aver creato e utilizzato un blocco note, puoi terminare la sessione del blocco note facendo clic su Chiudi kernel dalla scheda Kernel.
Gestisci i file di input e di output in Cloud Storage
L'analisi dei dati esplorativi e la creazione di modelli ML spesso comporta basati su file. Dataproc Serverless accede a questi file su Cloud Storage.
Per accedere al browser Cloud Storage, fai clic sul browser Cloud Storage nella barra laterale della pagina Avvio app JupyterLab, quindi fai doppio clic su cartella per visualizzarne i contenuti.
Puoi fare clic sui tipi di file supportati da Jupyter per aprirli e modificarli. Quando salvare le modifiche apportate ai file, queste vengono scritte in Cloud Storage.
Per creare una nuova cartella di Cloud Storage, fai clic sull'icona della nuova cartella, quindi inserisci il nome della cartella.
Per caricare i file in un bucket Cloud Storage o in una cartella, fai clic su l'icona di caricamento, quindi seleziona i file da caricare.
Sviluppa il codice del blocco note Spark
Dopo aver installato il plug-in JupyterLab di Dataproc, puoi avviare i blocchi note Jupyter dalla pagina Launcher di JupyterLab per sviluppare il codice dell'applicazione.
Sviluppo di codice PySpark e Python
Dataproc serverless e Dataproc su Compute Engine che supportano i kernel PySpark. Dataproc su Compute Engine supporta anche i kernel Python.
Fai clic su una scheda PySpark nel Blocchi note serverless di Dataproc oppure Blocco note del cluster Dataproc della pagina Avvio app JupyterLab per aprire un blocco note PySpark.
Fai clic su una scheda del kernel Python Sezione Blocco note del cluster Dataproc nella pagina Avvio app di JupyterLab per aprire un blocco note Python.
Sviluppo di codice SQL
Fai clic sulla scheda kernel PySpark Blocchi note serverless di Dataproc oppure Blocco note del cluster Dataproc sezione della pagina Avvio app JupyterLab per aprire un blocco note PySpark per scrivere ed eseguire codice SQL.
La magia di SQL di Spark: dal kernel PySpark che viene avviato
Blocchi note serverless di Dataproc
è precaricato con Spark SQL, anziché utilizzare spark.sql('SQL STATEMENT').show()
per racchiudere l'istruzione SQL, puoi digitare
%%sparksql magic
nella parte superiore di una cella, quindi digita l'istruzione SQL nella cella.
BigQuery SQL: il connettore BigQuery Spark consente al codice del blocco note di caricare dati dalle tabelle BigQuery, eseguire l'analisi in Spark e scrivere i risultati in una tabella BigQuery.
Il runtime Dataproc Serverless 2.1 include Connettore BigQuery Spark. Se utilizzi Dataproc Serverless 2.0 un runtime precedente o precedente per avviare i blocchi note serverless di Dataproc, puoi installare il connettore Spark BigQuery aggiungendo la seguente proprietà Spark al modello di runtime Dataproc Serverless:
spark.jars: gs://spark-lib/bigquery/spark-bigquery-with-dependencies_2.12-0.25.2.jar
Sviluppo di codice Scala
Cluster Dataproc su Compute Engine creati con un'immagine le versioni 2.0+, 2.1+ e successive, includono Apache Toree, un kernel Scala per la piattaforma di blocchi note Jupyter che fornisce accesso interattivo a Spark.
Fai clic sulla scheda Apache Toree nella Blocco note del cluster Dataproc della pagina Avvio app JupyterLab per aprire un blocco note per Scala lo sviluppo del codice.
Esplora metadati
Se un'istanza Dataproc Metastore (DPMS) è collegato a un modello di runtime Dataproc Serverless o un cluster Dataproc su Compute Engine, lo schema dell'istanza DPMS viene visualizzato in JupyterLab Metadata Explorer all'apertura di un blocco note. Il DPMS è un servizio Hive Metastore (HMS) completamente gestito e scalabile orizzontalmente in Google Cloud.
Per visualizzare i metadati HMS in Esplora metadati:
Abilita l'API Data Catalog nel tuo progetto.
Abilitare la sincronizzazione di Data Catalog nel servizio DPMS.
Specifica un'istanza DPMS quando crea il modello di runtime serverless di Dataproc oppure crea il cluster Dataproc su Compute Engine.
Per aprire Esplora metadati JupyterLab, fai clic sulla relativa icona nella barra laterale.
Puoi cercare un database, una tabella o una colonna in Esplora metadati. Fai clic sul nome di un database, una tabella o una colonna per visualizzare i metadati associati.
Esegui il deployment del codice
Dopo aver installato il plug-in JupyterLab di Dataproc, puoi utilizzare JupyterLab per:
Esegui il codice del tuo blocco note sull'infrastruttura serverless Dataproc
Inviare job batch all'infrastruttura serverless Dataproc o al tuo Dataproc su Compute Engine.
Esegui codice blocco note su Dataproc serverless
Fai clic sull'icona Esegui o premi i tasti Maiusc-Invio per eseguire il codice. in una cella del blocco note.
Utilizza il menu Esegui per eseguire il codice in una o più celle del blocco note.
Inviare un job batch a Dataproc serverless
Fai clic sulla scheda Serverless nella sezione Job e sessioni Dataproc nella pagina Avvio app JupyterLab.
Fai clic sulla scheda Batch, poi su Crea batch e compila Campi Informazioni batch.
Fai clic su Invia per inviare il job.
Invia un job batch a un cluster Dataproc su Compute Engine
Fai clic sulla scheda Cluster nella sezione Job e sessioni Dataproc. nella pagina Avvio app JupyterLab.
Fai clic sulla scheda Job, quindi su Invia job.
Seleziona un cluster, quindi compila i campi Job.
Fai clic su Invia per inviare il job.
Visualizzare e gestire le risorse
Dopo aver installato il plug-in JupyterLab di Dataproc, puoi visualizzare e gestire Dataproc Serverless e Dataproc su Compute Engine dalla sezione Job e sessioni Dataproc nella pagina Avvio app di JupyterLab.
Fai clic sulla sezione Job e sessioni Dataproc per visualizzare i campi Cluster e Schede serverless.
Per visualizzare e gestire le sessioni Dataproc Serverless:
- Fai clic sulla scheda Serverless.
- Fai clic sulla scheda Sessioni, poi su un ID sessione per aprire la sezione Dettagli sessione. pagina per visualizzare le proprietà della sessione, visualizzare il log di Google Cloud in Esplora log, e chiudere una sessione. Nota: viene creata una sessione serverless Dataproc unica per avviare ogni Blocco note serverless di Dataproc.
Per visualizzare e gestire i batch serverless Dataproc:
- Fai clic sulla scheda Batch per visualizzare l'elenco dei batch Dataproc serverless in progetto e regione attuali. Fai clic su un ID batch per visualizzare i dettagli del batch.
Per visualizzare e gestire i cluster Dataproc su Compute Engine:
- Fai clic sulla scheda Cluster. La scheda Cluster è selezionata di Dataproc su Compute Engine attivi in il progetto e la regione attuali. Puoi fare clic sulle icone nella colonna Azioni per avviare, arrestare o riavviare un cluster. Fai clic sul nome di un cluster per visualizzare i dettagli del cluster. Puoi fare clic sulle icone nella colonna Azioni per clonare, arrestare o eliminare un job.
Per visualizzare e gestire i job Dataproc su Compute Engine:
- Fai clic sulla scheda Job per visualizzare l'elenco di job nel progetto attuale. Fai clic su un ID job per visualizzare i dettagli del job.