Flusso di lavoro con Cloud Scheduler

In questo documento vengono utilizzati i seguenti componenti fatturabili di Google Cloud:

  • Dataproc
  • Compute Engine
  • Cloud Scheduler

Per generare una stima dei costi in base all'utilizzo previsto, utilizza il Calcolatore prezzi. I nuovi utenti di Google Cloud possono essere idonei a una prova senza costi aggiuntivi.

Prima di iniziare

Configura il progetto

  1. Accedi al tuo account Google Cloud. Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti gratuiti per l'esecuzione, il test e il deployment dei carichi di lavoro.
  2. Nella pagina del selettore di progetti della console Google Cloud, seleziona o crea un progetto Google Cloud.

    Vai al selettore progetti

  3. Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.

  4. Abilita le API Dataproc, Compute Engine, and Cloud Scheduler .

    Abilita le API

  5. Installa Google Cloud CLI.
  6. Per initialize gcloud CLI, esegui questo comando:

    gcloud init
  7. Nella pagina del selettore di progetti della console Google Cloud, seleziona o crea un progetto Google Cloud.

    Vai al selettore progetti

  8. Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.

  9. Abilita le API Dataproc, Compute Engine, and Cloud Scheduler .

    Abilita le API

  10. Installa Google Cloud CLI.
  11. Per initialize gcloud CLI, esegui questo comando:

    gcloud init

Creazione di un ruolo personalizzato

  1. Apri la pagina IAM e amministrazione → Ruoli nella console Google Cloud.
    1. Fai clic su CREA RUOLO per aprire la pagina Crea ruolo.
    2. Compila i campi Titolo, Descrizione, ID, Fase di avvio. Suggerimento: utilizza "Creazione modello flusso di lavoro Dataproc" come titolo del ruolo.
    3. Fai clic su AGGIUNGI AUTORIZZAZIONI.
      1. Nel modulo Aggiungi autorizzazioni, fai clic su Filtra, quindi seleziona "Autorizzazione". Completa il filtro per leggere "Autorizzazione: dataproc.workflowTemplates.instantiate".
      2. Fai clic sulla casella di controllo a sinistra dell'autorizzazione elencata, poi fai clic su AGGIUNGI.
    4. Nella pagina Crea ruolo, fai di nuovo clic su AGGIUNGI AUTORIZZAZIONI per ripetere i passaggi secondari precedenti e aggiungere l'autorizzazione "iam.serviceAccounts.actAs" al ruolo personalizzato. Nella pagina Crea ruolo sono ora elencate due autorizzazioni.
    5. Fai clic su CREA nella pagina Ruolo personalizzato. Il ruolo personalizzato è elencato nella pagina Ruoli.

Crea un account di servizio

  1. Nella console Google Cloud, vai alla pagina Account di servizio.

    Vai ad Account di servizio

  2. Seleziona il progetto.

  3. Fai clic su Crea account di servizio.

  4. Nel campo Nome account di servizio, inserisci il nome workflow-scheduler. La console Google Cloud compila il campo ID account di servizio in base a questo nome.

  5. (Facoltativo) Nel campo Descrizione account di servizio, inserisci una descrizione per l'account di servizio.

  6. Fai clic su Crea e continua.

  7. Fai clic sul campo Seleziona un ruolo e scegli il ruolo personalizzato Creazione modello flusso di lavoro Dataproc creato nel passaggio precedente.

  8. Fai clic su Continua.

  9. Nel campo Ruolo di amministratori account di servizio, inserisci l'indirizzo email del tuo Account Google.

  10. Fai clic su Fine per completare la creazione dell'account di servizio.

Crea un modello di flusso di lavoro.

Copia ed esegui i comandi elencati di seguito in una finestra del terminale locale o in Cloud Shell per creare e definire un modello di flusso di lavoro.

Note:

  • I comandi specificano la regione "us-central1". Puoi specificare una regione diversa o eliminare il flag --region se in precedenza hai eseguito gcloud config set compute/region per impostare la proprietà della regione.
  • La sequenza "-- " (spazio tra trattini e trattini) nel comando add-job passa l'argomento 1000 al job SparkPi, che specifica il numero di campioni da utilizzare per stimare il valore di Pi.

  1. Crea il modello di flusso di lavoro.

    gcloud dataproc workflow-templates create sparkpi \
        --region=us-central1
    
  2. Aggiungi il job spark al modello di flusso di lavoro Sparkpi. L'ID passaggio "compute" è obbligatorio e identifica il job SparkPi aggiunto.
    gcloud dataproc workflow-templates add-job spark \
        --workflow-template=sparkpi \
        --step-id=compute \
        --class=org.apache.spark.examples.SparkPi \
        --jars=file:///usr/lib/spark/examples/jars/spark-examples.jar \
        --region=us-central1 \
        -- 1000
    

  3. Utilizza un cluster gestito a nodo singolo per eseguire il flusso di lavoro. Dataproc creerà il cluster, eseguirà il flusso di lavoro su di esso, quindi eliminerà il cluster al termine del flusso di lavoro.

    gcloud dataproc workflow-templates set-managed-cluster sparkpi \
        --cluster-name=sparkpi \
        --single-node \
        --region=us-central1
    

  4. Fai clic sul nome sparkpi nella pagina Flussi di lavoro di Dataproc nella console Google Cloud per aprire la pagina Dettagli del modello di flusso di lavoro. Conferma gli attributi del modello Sparkpi.

Crea un job Cloud Scheduler

  1. Apri la pagina Cloud Scheduler nella console Google Cloud (potrebbe essere necessario selezionare il progetto per aprire la pagina). Fai clic su CREA JOB.

  2. Inserisci o seleziona le seguenti informazioni sul lavoro:

    1. Seleziona una regione: "us-central" o un'altra regione in cui hai creato il modello di flusso di lavoro.
    2. Nome: "sparkpi"
    3. Frequenza: "* * * * *" seleziona ogni minuto; "0 9 * * 1" seleziona ogni lunedì alle 09:00. Consulta Definizione della pianificazione del job per altri valori unix-cron. Nota: potrai fare clic su un pulsante ESEGUI ORA nei job di Cloud Scheduler nella console Google Cloud per eseguire e testare il job indipendentemente dalla frequenza impostata per il job.
    4. Fuso orario: seleziona il tuo timezone. Digita "Stati Uniti" per elencare i fusi orari degli Stati Uniti.
    5. Target: "HTTP"
    6. URL: inserisci il seguente URL dopo aver inserito your-project-id. Sostituisci "us-central1" se hai creato il modello di flusso di lavoro in un'altra regione. Questo URL chiamerà l'API Dataproc workflowTemplates.instantiate per eseguire il modello di flusso di lavoro di Sparkpi.
      https://dataproc.googleapis.com/v1/projects/your-project-id/regions/us-central1/workflowTemplates/sparkpi:instantiate?alt=json
      
    7. Metodo HTTP:
      1. "PUBBLICA"
      2. Corpo: "{}"
    8. Intestazione autorizzazione:
      1. "Aggiungi token OAuth"
      2. Account di servizio: inserisci il valore service account address dell'account di servizio che hai creato per questo tutorial. Puoi utilizzare il seguente indirizzo di account dopo aver inserito your-project-id:
        workflow-scheduler@your-project-id.iam.gserviceaccount
        
      3. Ambito: puoi ignorare questo elemento.
    9. Fai clic su CREA.

Testare il job di flusso di lavoro pianificato

  1. Nella riga del job sparkpi nella pagina Job di Cloud Scheduler, fai clic su ESEGUI ORA.

  2. Attendi qualche minuto, quindi apri la pagina Flussi di lavoro di Dataproc per verificare il completamento del flusso di lavoro di Sparkpi.

  3. Dopo che il flusso di lavoro elimina il cluster gestito, i dettagli del job vengono mantenuti nella console Google Cloud. Fai clic sul job compute... elencato nella pagina Job di Dataproc per visualizzare i dettagli del job del flusso di lavoro.

Eseguire la pulizia

Il flusso di lavoro di questo tutorial elimina il cluster gestito al termine del flusso di lavoro. Mantenere il flusso di lavoro ti consente di ripeterlo senza incorrere in addebiti. Puoi eliminare altre risorse create in questo tutorial per evitare costi ricorrenti.

Eliminazione di un progetto

  1. Nella console Google Cloud, vai alla pagina Gestisci risorse.

    Vai a Gestisci risorse

  2. Nell'elenco dei progetti, seleziona il progetto che vuoi eliminare, quindi fai clic su Elimina.
  3. Nella finestra di dialogo, digita l'ID del progetto e fai clic su Chiudi per eliminare il progetto.

Eliminazione del modello di flusso di lavoro

gcloud dataproc workflow-templates delete sparkpi \
    --region=us-central1

Eliminazione del job di pianificazione Cloud

Apri la pagina Job di Cloud Scheduler nella console Google Cloud, seleziona la casella a sinistra della funzione sparkpi, quindi fai clic su ELIMINA.

Eliminazione dell'account di servizio

Apri la pagina IAM e amministrazione → Account di servizio nella console Google Cloud, seleziona la casella a sinistra dell'account di servizio workflow-scheduler..., quindi fai clic su ELIMINA.

Passaggi successivi