Questo documento spiega i messaggi di errore comuni durante la creazione dei cluster e fornisce suggerimenti per la risoluzione dei problemi di creazione dei cluster.
Messaggi di errore comuni durante la creazione dei cluster
L'utente non è autorizzato ad agire come account di servizio
Causa: l'entità che tenta di creare il cluster Managed Service for Apache Spark non dispone delle autorizzazioni necessarie per utilizzare il account di servizio specificato. Gli utenti di Managed Service for Apache Spark devono disporre dell'autorizzazione
ActAsdel account di servizio per eseguire il deployment delle risorse Managed Service for Apache Spark; questa autorizzazione è inclusa nel ruolo Utente service account (roles/iam.serviceAccountUser) (vedi Ruoli di Managed Service for Apache Spark).Soluzione: identifica l'utente o il service account che tenta di creare il cluster Managed Service for Apache Spark. Concedi a questa entità il ruolo Utente service account (
roles/iam.serviceAccountUser) nel account di servizio configurato per l'utilizzo del cluster (in genere, il service account della VM Managed Service for Apache Spark).Operazione scaduta: sono in esecuzione solo 0 dei 2 datanode/node manager minimi richiesti.
Causa: il nodo controller non è in grado di creare il cluster perché non può comunicare con i nodi worker.
Soluzione:
- Controlla gli avvisi relativi alle regole firewall.
- Assicurati che siano in vigore le regole firewall corrette. Per saperne di più, consulta la panoramica delle regole firewall predefinite di Managed Service for Apache Spark.
- Esegui un test di connettività nella Google Cloud console per determinare cosa blocca la comunicazione tra il controller e i nodi worker.
Autorizzazione
compute.subnetworks.userichiesta perprojects/{projectId}/regions/{region}/subnetworks/{subnetwork}Causa: questo errore può verificarsi quando tenti di configurare un cluster Managed Service for Apache Spark utilizzando una rete VPC in un altro progetto e il account di servizio Managed Service for Apache Spark Service Agent non dispone delle autorizzazioni necessarie per il progetto VPC condiviso che ospita la rete.
Soluzione: segui i passaggi elencati in Creare un cluster che utilizza una rete VPC in un altro progetto.
La zona
projects/zones/{zone}non dispone di risorse sufficienti per soddisfare la richiesta(resource type:compute)Causa: la zona utilizzata per creare il cluster non dispone di risorse sufficienti.
Soluzione:
- Utilizza la funzionalità di posizionamento automatico delle zone di Managed Service for Apache Spark Auto Zone placement feature per creare il cluster in una delle zone di una regione con risorse disponibili.
- Crea il cluster in un'altra zona.
Errori di superamento quota
Insufficient CPUS/CPUS_ALL_REGIONS quota
Insufficient 'DISKS_TOTAL_GB' quota
Insufficient 'IN_USE_ADDRESSES' quotaCausa: la richiesta di CPU, dischi, o indirizzi IP supera la quota disponibile.
Soluzione: richiedi una quota aggiuntiva dalla Google Cloud console.
Azione di inizializzazione non riuscita
Causa: l'azione di inizializzazione fornita durante la creazione del cluster non è stata installata.
Soluzione:
- Consulta le considerazioni e le linee guida per le azioni di inizializzazione.
- Esamina i log di output. Il messaggio di errore dovrebbe fornire un link ai log in Cloud Storage.
Impossibile inizializzare il nodo
CLUSTER-NAME-m. ... Vedi l'output in:<gs://PATH_TO_STARTUP_SCRIPT_OUTPUT>Causa: non è stato possibile inizializzare il nodo controller del cluster Managed Service for Apache Spark.
Soluzione:
- Esamina i log di output dello script di avvio elencati nel messaggio di errore
(
gs://PATH_TO_STARTUP_SCRIPT_OUTPUT) e verifica la causa dell'inizializzazione del nodo non riuscita. - Le cause possono includere problemi di configurazione di rete del cluster Managed Service for Apache Spark e l'installazione non riuscita delle dipendenze del pacchetto Python.
- Se il problema non viene risolto dopo aver esaminato i log dello script di avvio, correggi eventuali problemi lato utente, quindi riprova con un backoff esponenziale, contatta l'assistenza Google Cloud.
- Esamina i log di output dello script di avvio elencati nel messaggio di errore
(
Creazione del cluster non riuscita: spazio degli indirizzi IP esaurito
Causa: lo spazio degli indirizzi IP necessario per il provisioning dei nodi del cluster richiesti non è disponibile.
Soluzione:
- Crea un cluster con meno nodi worker, ma con un tipo di macchina più grande.
- Crea un cluster su una subnet o una rete diversa.
- Riduci l'utilizzo della rete per liberare spazio degli indirizzi IP.
- Attendi che sia disponibile spazio IP sufficiente sulla rete.
Messaggio di errore dello script di inizializzazione: il repository REPO_NAME non ha più un file di release
Causa: il repository di backport di Debian oldstable è stato eliminato.
Soluzione:
Aggiungi il seguente codice prima del codice che esegue
apt-getnello script di inizializzazione.oldstable=$(curl -s https://deb.debian.org/debian/dists/oldstable/Release | awk '/^Codename/ {print $2}'); stable=$(curl -s https://deb.debian.org/debian/dists/stable/Release | awk '/^Codename/ {print $2}'); matched_files="$(grep -rsil '\-backports' /etc/apt/sources.list*)" if [[ -n "$matched_files" ]]; then for filename in "$matched_files"; do grep -e "$oldstable-backports" -e "$stable-backports" "$filename" || \ sed -i -e 's/^.*-backports.*$//' "$filename" done fiTimeout in attesa che l'istanza
DATAPROC_CLUSTER_VM_NAMEsegnali la sua presenza o Rete non raggiungibile:dataproccontrol-REGION.googleapis.comCausa: questi messaggi di errore indicano che la configurazione di rete del cluster Managed Service for Apache Spark non è completa: potrebbero mancare la route al gateway internet predefinito o le regole firewall.
Soluzione:
Per risolvere il problema, puoi creare i seguenti test di connettività:
- Crea un test di connettività tra due VM del cluster Managed Service for Apache Spark. Il risultato di questo test ti aiuterà a capire se le regole firewall di autorizzazione in entrata o in uscita della tua rete si applicano correttamente alle VM del cluster.
- Crea un test di connettività tra una VM del cluster Managed Service for Apache Spark e un indirizzo IP dell'API di controllo Managed Service for Apache Spark corrente. Per ottenere un indirizzo IP dell'API di controllo Managed Service for Apache Spark corrente, utilizza il seguente comando:
dig dataproccontrol-REGION.googleapis.com A
Utilizza uno degli indirizzi IPv4 nella sezione delle risposte dell'output.
Il risultato del test di connettività ti aiuterà a capire se la route al gateway internet predefinito e il firewall di autorizzazione in uscita sono configurati correttamente.
In base ai risultati di Connectivity Tests:
- Aggiungi una route a internet alla rete VPC del cluster:
0.0.0.0/0per IPv4 e::/0per IPv6 con--next-hop-gateway=default-internet-gateway. - Aggiungi regole firewall per il controllo dell'accesso.
Errore dovuto all'aggiornamento
Causa: il cluster ha accettato un job inviato al servizio Managed Service for Apache Spark, ma non è stato in grado di eseguire lo scale up o lo scale down manualmente o tramite lo scaling automatico. Questo errore può essere causato anche da una configurazione del cluster non standard.
Soluzione:
Reimpostazione del cluster: apri un ticket di assistenza, includi un file tar di diagnostica, e chiedi di reimpostare il cluster sullo stato RUNNING.
Nuovo cluster: ricrea il cluster con la stessa configurazione. Questa soluzione può essere più rapida di una reimpostazione fornita dall'assistenza.
Suggerimenti per la risoluzione dei problemi dei cluster
Questa sezione fornisce ulteriori indicazioni sulla risoluzione dei problemi comuni che possono impedire la creazione di cluster Managed Service for Apache Spark.
Quando il provisioning di un cluster Managed Service for Apache Spark non riesce, spesso viene generato un messaggio di errore generico o viene segnalato uno stato PENDING o PROVISIONING prima del fallimento. La chiave per diagnosticare e risolvere i problemi di errore del cluster è esaminare i log del cluster e valutare i punti di errore comuni.
Sintomi comuni
Di seguito sono riportati i sintomi comuni associati agli errori di creazione dei cluster:
- Lo stato del cluster rimane
PENDINGoPROVISIONINGper un periodo prolungato. - Il cluster passa allo stato
ERROR. - Errori API generici durante la creazione del cluster, ad esempio
Operation timed out. Messaggi di errore registrati o di risposta dell'API, ad esempio:
RESOURCE_EXHAUSTED: relativo alle quote di CPU, disco o indirizzi IPInstance failed to startPermission deniedUnable to connect to service_name.googleapis.comoCould not reach required Google APIsConnection refusedonetwork unreachable- Errori relativi al mancato funzionamento delle azioni di inizializzazione, ad esempio errori di esecuzione degli script e file non trovati.
Esaminare i log del cluster
Un passaggio iniziale importante per diagnosticare gli errori di creazione dei cluster è esaminare i log dettagliati dei cluster disponibili in Cloud Logging.
- Vai a Esplora log: apri Esplora log nella Google Cloud console.
- Filtra i cluster Managed Service for Apache Spark:
- Nel menu a discesa Risorsa, seleziona
Cloud Managed Service for Apache Spark Cluster. - Inserisci
cluster_nameeproject_id. Puoi anche filtrare perlocation(regione).
- Nel menu a discesa Risorsa, seleziona
- Esamina le voci di log:
- Cerca i messaggi di livello
ERRORoWARNINGche si verificano in prossimità dell'errore di creazione del cluster. - Presta attenzione ai log dei componenti
master-startup,worker-startupeagentper informazioni dettagliate sui problemi a livello di VM o dell'agente Managed Service for Apache Spark. - Per informazioni dettagliate sui problemi relativi al tempo di avvio della VM,
filtra i log in base a
resource.type="gce_instance", e cerca i messaggi dei nomi delle istanze associati ai nodi del cluster, ad esempioCLUSTER_NAME-moCLUSTER_NAME-w-0. I log della console seriale possono rivelare problemi di configurazione di rete, problemi del disco ed errori di script che si verificano all'inizio del ciclo di vita della VM.
- Cerca i messaggi di livello
Cause comuni di errori dei cluster e suggerimenti per la risoluzione dei problemi
Questa sezione illustra i motivi comuni per cui la creazione di cluster Managed Service for Apache Spark potrebbe non riuscire e fornisce suggerimenti per la risoluzione dei problemi per aiutarti a risolvere i problemi dei cluster.
Autorizzazioni IAM insufficienti
Il service account della VM utilizzato dal cluster Managed Service for Apache Spark deve disporre dei ruoli IAM appropriati per eseguire il provisioning delle istanze Compute Engine, accedere ai bucket Cloud Storage, scrivere log e interagire con altri Google Cloud servizi.
- Ruolo Worker richiesto: verifica che il account di servizio della VM abbia il
ruolo Worker di Managed Service for Apache Spark (
roles/dataproc.worker). Questo ruolo dispone delle autorizzazioni minime richieste da Managed Service for Apache Spark per gestire le risorse del cluster. - Autorizzazioni di accesso ai dati: se i job leggono o scrivono in Cloud Storage o BigQuery, il account di servizio necessita di ruoli correlati, ad esempio
Storage Object Viewer,Storage Object CreatoroStorage Object Adminper Cloud Storage oppureBigQuery Data VieweroBigQuery Editorper BigQuery. - Autorizzazioni di logging: il account di servizio deve avere un ruolo con le autorizzazioni necessarie per scrivere i log in Cloud Logging, ad esempio il ruolo
Logging Writer.
Suggerimenti per la risoluzione dei problemi:
Identifica il account di servizio: determina il service account della VM configurato per l'utilizzo del cluster. Se non viene specificato, il valore predefinito è il service account predefinito di Compute Engine.
Verifica i ruoli IAM: vai alla pagina IAM e amministrazione > IAM nella Google Cloud console, trova il account di servizio della VM del cluster, e verifica che disponga dei ruoli necessari per le operazioni del cluster. Concedi i ruoli mancanti.
Quote di risorse superate
I cluster Managed Service for Apache Spark utilizzano le risorse di Compute Engine e altri Google Cloud servizi. Il superamento delle quote di progetto o regionali può causare errori di creazione dei cluster.
- Quote comuni di Managed Service for Apache Spark da controllare:
CPUs(regionali)DISKS_TOTAL_GB(regionali)IN_USE_ADDRESSES(regionali per gli IP interni, globali per gli IP esterni)- Quote dell'API Dataproc, ad esempio
ClusterOperationRequestsPerMinutePerProjectPerRegion
Suggerimenti per la risoluzione dei problemi:
- Esamina le quote: vai alla pagina IAM e amministrazione > IAM nella Google Cloud console. Filtra per "Servizio" per "API Compute Engine" e "API Dataproc".
- Controlla l'utilizzo rispetto al limite: identifica le quote che sono al limite o quasi.
- Se necessario, richiedi un aumento della quota.
Problemi di configurazione di rete
I problemi di configurazione di rete , come la configurazione errata di rete VPC, subnet, firewall o DNS, sono una causa comune di errori di creazione dei cluster. Le istanze del cluster devono essere in grado di comunicare tra loro e con le API di Google.
- Rete VPC e subnet:
- Verifica che la rete VPC e la subnet del cluster esistano e siano configurate correttamente.
- Verifica che la subnet abbia un intervallo sufficiente di indirizzi IP disponibili.
- Accesso privato Google (PGA): se le VM del cluster hanno indirizzi IP interni e devono raggiungere le API di Google per Cloud Storage, Cloud Logging e altre operazioni, verifica che l'accesso privato Google sia abilitato nella subnet. Per impostazione predefinita, i cluster Managed Service for Apache Spark creati con le versioni delle immagini 2.2+ eseguono il provisioning delle VM con indirizzi IP solo interni con l'accesso privato Google abilitato nella subnet regionale del cluster.
- Private Service Connect
(PSC): se utilizzi
Private Service Connect per accedere alle API di Google,
verifica che gli
endpoint Private Service Connect
necessari siano configurati correttamente per le API di Google da cui dipende Managed Service for Apache Spark,
ad esempio
dataproc.googleapis.com,storage.googleapis.com,compute.googleapis.comelogging.googleapis.com. Le voci DNS per le API devono essere risolte in indirizzi IP privati. Tieni presente che l'utilizzo di Private Service Connect non elimina la necessità di utilizzare il peering VPC per comunicare con altre reti VPC gestite dal cliente. - Peering VPC: se il cluster comunica con le risorse in altre reti VPC, ad esempio progetti host VPC condiviso o altri VPC del cliente, verifica che il peering VPC sia configurato correttamente e che le route vengano propagate.
Regole firewall:
- Regole predefinite: verifica che le regole firewall predefinite, ad esempio
allow-internaloallow-ssh, non siano eccessivamente restrittive. Regole personalizzate: se sono in vigore regole firewall personalizzate, verifica che consentano i percorsi di comunicazione necessari:
- Comunicazione interna all'interno del cluster (tra i nodi -m e -w).
Traffico in uscita dalle VM del cluster alle API di Google, utilizzando IP pubblici o un gateway internet, l'accesso privato Google o gli endpoint Private Service Connect.
Traffico verso eventuali origini dati o servizi esterni da cui dipendono i job.
- Regole predefinite: verifica che le regole firewall predefinite, ad esempio
Risoluzione DNS: verifica che le istanze del cluster possano risolvere correttamente i nomi DNS per le API di Google e per eventuali servizi interni o esterni.
Suggerimenti per la risoluzione dei problemi:
- Esamina la configurazione di rete: controlla le impostazioni della rete VPC e della subnet in cui viene eseguito il deployment del cluster.
- Controlla le regole firewall: esamina le regole firewall nella rete VPC o nel progetto host VPC condiviso.
- Testa la connettività: avvia una VM di Compute Engine temporanea nella subnet del cluster ed esegui i seguenti passaggi:
pingocurlai domini delle API di Google esterni, ad esempiostorage.googleapis.com.nslookupper verificare la risoluzione DNS agli indirizzi IP previsti (accesso privato Google o Private Service Connect).- Esegui Google Cloud test di connettività per diagnosticare i percorsi da una VM di test agli endpoint pertinenti.
Errori delle azioni di inizializzazione
Le azioni di inizializzazione di Managed Service for Apache Spark sono script eseguiti sulle VM del cluster durante la creazione del cluster. Gli errori in questi script possono impedire l'avvio del cluster.
Suggerimenti per la risoluzione dei problemi:
- Esamina i log per gli errori delle azioni di inizializzazione: cerca le voci di log relative a
init-actionsostartup-scriptper le istanze del cluster in Cloud Logging. - Controlla i percorsi e le autorizzazioni degli script: verifica che gli script delle azioni di inizializzazione si trovino correttamente in Cloud Storage e che il service account della VM del cluster abbia il ruolo
Storage Object Viewernecessario per leggere gli script di Cloud Storage. - Esegui il debug della logica dello script: testa la logica dello script su una VM di Compute Engine separata che simula l'ambiente del cluster per identificare gli errori. Aggiungi la registrazione dettagliata allo script.
Disponibilità delle risorse regionali (esaurimento scorte)
A volte, un tipo di macchina o una risorsa in una regione o zona subisce un'indisponibilità temporanea (esaurimento scorte). In genere, questo comporta errori RESOURCE_EXHAUSTED non correlati a problemi di quota del progetto.
Suggerimenti per la risoluzione dei problemi:
- Prova un'altra zona o regione: tenta di creare il cluster in un'altra zona della stessa regione o in un'altra regione.
- Utilizza il posizionamento automatico delle zone: utilizza la funzionalità di posizionamento automatico delle zone di Managed Service for Apache Spark Auto Zone placement per selezionare automaticamente una zona con capacità.
- Modifica il tipo di macchina: se utilizzi un tipo di macchina personalizzato o specializzato, prova un tipo di macchina standard per verificare se il problema viene risolto.
Contattare l'assistenza clienti Google Cloud
Se continui a riscontrare problemi di errore del cluster, contatta l'assistenza clienti Google Cloud. Descrivi il problema di errore del cluster e i passaggi di risoluzione dei problemi eseguiti. Inoltre, fornisci le seguenti informazioni:
- Dati di diagnostica del cluster
- Output del seguente comando:
gcloud dataproc clusters describe CLUSTER_NAME \ --region=REGION
- Log esportati per il cluster non riuscito.
Utilizzare lo strumento gcpdiag
gcpdiag
è uno strumento open source. Non è un prodotto supportato ufficialmente Google Cloud .
Puoi utilizzare lo strumento gcpdiag per identificare e risolvere Google Cloud
i problemi del progetto. Per saperne di più, consulta il
progetto gcpdiag su GitHub.
Lo strumento gcpdiag ti aiuta a scoprire i seguenti problemi di creazione dei cluster Managed Service for Apache Spark eseguendo i seguenti controlli:
- Errori di esaurimento scorte: valuta i log di Esplora log per scoprire gli esaurimenti scorte nelle regioni e nelle zone.
- Quota insufficiente: controlla la disponibilità della quota nel progetto del cluster Managed Service for Apache Spark.
- Configurazione di rete incompleta: esegue test di connettività di rete, inclusi i controlli per le regole firewall necessarie e la configurazione IP esterna e interna. Se il cluster è stato eliminato, lo strumento
gcpdiagnon può eseguire un controllo di connettività di rete. - Configurazione errata tra progetti: controlla i service account tra progetti ed esamina i ruoli aggiuntivi e l'applicazione dei criteri dell'organizzazione.
- Ruoli IAM di rete VPC condivisa mancanti: se il cluster Managed Service for Apache Spark utilizza una rete VPC condiviso, controlla l'aggiunta dei ruoli del service account richiesti.
- Errori delle azioni di inizializzazione: valuta i log di Esplora log per scoprire gli errori e i timeout degli script delle azioni di inizializzazione.
Per un elenco dei passaggi di gcpdiag dataproc, inclusi i passaggi di creazione dei cluster, consulta
Passaggi di Managed Service for Apache Spark.
Eseguire il comando gcpdiag
Puoi eseguire il comando gcpdiag da Cloud Shell nella
Google Cloud console o all'interno di un container Docker.
Google Cloud Console
- Completa e poi copia il seguente comando.
- Apri la Google Cloud console e attiva Cloud Shell. Apri la console Cloud
- Incolla il comando copiato.
- Esegui il comando
gcpdiag, che scarica l'immagine Dockergcpdiag, quindi esegue i controlli di diagnostica. Se applicabile, segui le istruzioni di output per correggere i controlli non riusciti.
gcpdiag runbook managed-spark/cluster-creation \
--parameter project_id=PROJECT_ID \
--parameter cluster_name=CLUSTER_NAME \
--parameter OPTIONAL_FLAGSDocker
Puoi
eseguire gcpdiag utilizzando un wrapper che avvia gcpdiag in un
container Docker. Docker o
Podman devono essere installati.
- Copia ed esegui il seguente comando sulla workstation locale.
curl https://gcpdiag.dev/gcpdiag.sh >gcpdiag && chmod +x gcpdiag
- Esegui il comando
gcpdiag../gcpdiag runbook managed-spark/cluster-creation \ --parameter project_id=PROJECT_ID \ --parameter cluster_name=CLUSTER_NAME \ --parameter OPTIONAL_FLAGS
Visualizza i parametri disponibili per questo runbook.
Sostituisci quanto segue:
- PROJECT_ID: l'ID del progetto contenente la risorsa
- CLUSTER_NAME: il nome del cluster Managed Service for Apache Spark di destinazione nel tuo progetto
- OPTIONAL_PARAMETERS: aggiungi uno o più dei
seguenti parametri facoltativi. Questi parametri sono obbligatori se
il cluster è stato eliminato.
cluster_uuid: l'UUID del cluster Managed Service for Apache Spark di destinazione nel tuo progettoservice_account: il service account della VM del cluster Managed Service for Apache Sparksubnetwork: il percorso URI completo della subnet del cluster Managed Service for Apache Sparkinternal_ip_only: True o Falsecross_project: l'ID tra progetti se il cluster Managed Service for Apache Spark utilizza un account di servizio VM in un altro progetto
Flag utili:
--universe-domain: se applicabile, il dominio Trusted Partner Sovereign Cloud che ospita la risorsa--parametero-p: parametri del runbook
Per un elenco e una descrizione di tutti i flag dello strumento gcpdiag, consulta le
gcpdiag istruzioni per l'utilizzo.
Passaggi successivi
- Scopri di più sugli strumenti di monitoraggio e risoluzione dei problemi di Managed Service for Apache Spark.
- Scopri come diagnosticare i cluster Managed Service for Apache Spark.
- Consulta il documento Domande frequenti su Managed Service for Apache Spark.