Flusso di lavoro con Cloud Scheduler

In questo documento utilizzi 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 Google Cloud utenti potrebbero avere diritto a una prova gratuita.

Prima di iniziare

Configura il progetto

  1. 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.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Dataproc, Compute Engine, and Cloud Scheduler APIs.

    Enable the APIs

  5. Install the Google Cloud CLI.
  6. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

  7. To initialize the gcloud CLI, run the following command:

    gcloud init
  8. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  9. Make sure that billing is enabled for your Google Cloud project.

  10. Enable the Dataproc, Compute Engine, and Cloud Scheduler APIs.

    Enable the APIs

  11. Install the Google Cloud CLI.
  12. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

  13. To initialize the gcloud CLI, run the following command:

    gcloud init

Creare 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 lancio. Suggerimento: utilizza "Creazione modello di 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 in modo che legga "Autorizzazione: dataproc.workflowTemplates.instantiate".
      2. Fai clic sulla casella di controllo a sinistra dell'autorizzazione indicata, quindi su AGGIUNGI.
    4. Nella pagina Crea ruolo, fai di nuovo clic su AGGIUNGI AUTORIZZAZIONI per ripetere la procedura passaggi secondari precedenti per aggiungere "iam.serviceAccounts.actAs" autorizzazione al ruolo personalizzato. La pagina Crea ruolo ora elenca due autorizzazioni.
    5. Fai clic su CREA nella pagina Ruolo personalizzato. Il ruolo personalizzato è indicato nella pagina Ruoli.

Crea un account di servizio

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

    Vai a Account di servizio

  2. Seleziona il progetto.

  3. Fai clic su Crea servizio Account.

  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 di modelli di flusso di lavoro Dataproc che hai creato nel passaggio precedente.

  8. Fai clic su Continua.

  9. Nel campo Ruolo 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 definire un modello di flusso di lavoro.

Note:

  • I comandi specificano la stringa "us-central1" region. Puoi specificare un'altra regione o elimina il flag --region se hai già eseguito gcloud config set compute/region per impostare la proprietà della regione.
  • La sequenza "-- " (barra spaziatrice) 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 del 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 gestito, nodo singolo per eseguire il flusso di lavoro. Dataproc creerà il cluster, eseguirà il flusso di lavoro al suo interno ed 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 Dataproc Flussi di lavoro nella console Google Cloud per aprire la pagina Dettagli del modello di flusso di lavoro. Conferma il modello sparkpi attributi.

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 l'altra regione in cui hai creato modello di flusso di lavoro.
    2. Nome: "sparkpi"
    3. Frequenza: "* * * * *" seleziona ogni minuto; "0 9 * * 1" seleziona ogni lunedì alle 9:00. Consulta Definire la pianificazione dei job per altri valori unix-cron. Nota: puoi fare clic su ESEGUI ORA pulsante sui Job di Cloud Scheduler nella console Google Cloud di eseguire e testare il job a prescindere dalla frequenza impostata. il tuo lavoro.
    4. Fuso orario: seleziona timezone. Digita "Stati Uniti" all'elenco Fusi orari degli Stati Uniti.
    5. Destinazione: "HTTP"
    6. URL:inserisci il seguente URL dopo aver inserito l'URL your-project-id. Sostituisci "us-central1" se hai creato il modello di flusso di lavoro in un'altra regione. Questo URL chiama lo strumento Dataproc workflowTemplates.instantiate API per eseguire il modello di flusso di lavoro sparkpi.
      https://dataproc.googleapis.com/v1/projects/your-project-id/regions/us-central1/workflowTemplates/sparkpi:instantiate?alt=json
      
    7. Metodo HTTP:
      1. "POST"
      2. Corpo: "{}"
    8. Intestazione autorizzazione:
      1. "Aggiungi token OAuth"
      2. Account di servizio: inserisci service account address di l'account di servizio che hai creato per questo tutorial. Dopo aver inserito your-project-id, puoi utilizzare il seguente indirizzo account:
        workflow-scheduler@your-project-id.iam.gserviceaccount.com
        
      3. Ambito: puoi ignorare questo elemento.
    9. Fai clic su CREA.

Testa il job del flusso di lavoro pianificato

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

  2. Attendi alcuni minuti, quindi apri Dataproc Flussi di lavoro da verificare completato il flusso di lavoro sparkpi.

  3. Dopo che il flusso di lavoro ha eliminato il cluster gestito, i dettagli del job vengono mantenuti nella console Google Cloud. Fai clic sull' Job compute... elencato su Dataproc Job per visualizzare i dettagli dei job del flusso di lavoro.

Pulizia

Il flusso di lavoro di questo tutorial elimina il proprio cluster gestito una volta completato il flusso di lavoro. La conservazione del flusso di lavoro ti consente di eseguirlo di nuovo e non comporta costi. Puoi eliminare altre risorse create in questo tutorial per evitare costi ricorrenti.

Eliminazione di un progetto

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

Eliminazione del modello di flusso di lavoro

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

Eliminazione del job di Cloud Scheduler in corso...

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

Eliminazione dell'account di servizio

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

Passaggi successivi