Utilizzare lo strumento gcpdiag
gcpdiag
è uno strumento open source. Non è un prodotto Google Cloud supportato ufficialmente.
Puoi utilizzare lo strumento gcpdiag
per identificare e risolvere Google Cloud
i problemi del progetto. Per maggiori informazioni, consulta il
progetto gcpdiag su GitHub.
Lo strumento gcpdiag
ti aiuta a scoprire i seguenti problemi di creazione del cluster Dataproc eseguendo i seguenti controlli:
- Errori di esaurimento scorte:valuta i log di Esplora log per rilevare l'esaurimento scorte in regioni e zone.
- Quota insufficiente:controlla la disponibilità della quota nel progetto cluster Dataproc.
- Configurazione di rete incompleta: esegue test di connettività di rete,
inclusi controlli per le regole firewall necessarie e la configurazione IP
esterna e interna. Se il cluster è stato eliminato, lo strumento
gcpdiag
non può eseguire un controllo della connettività di rete. - Configurazione errata tra progetti: verifica gli account di servizio tra progetti e rivede l'applicazione di ruoli e policy dell'organizzazione aggiuntivi.
- Ruoli IAM di rete Virtual Private Cloud condivisa mancanti:se il cluster Dataproc utilizza una rete VPC condiviso, verifica l'aggiunta dei ruoli del service account richiesti.
- Errori delle azioni di inizializzazione: valuta i log di Logs Explorer per rilevare errori e timeout degli script delle azioni di inizializzazione.
Per un elenco dei passaggi di creazione del cluster gcpdiag
, vedi
Potenziali passaggi.
Esegui il comando gcpdiag
Puoi eseguire il comando gcpdiag
da Cloud Shell nella
consoleGoogle Cloud o all'interno di un container Docker.
ConsoleGoogle Cloud
- Completa e copia il seguente comando.
- Apri la console Google Cloud e attiva Cloud Shell. Apri Cloud Console
- Incolla il comando copiato.
- Esegui il comando
gcpdiag
, che scarica l'immagine Dockergcpdiag
e poi esegue controlli diagnostici. Se applicabile, segui le istruzioni di output per correggere i controlli non riusciti.
gcpdiag runbook dataproc/cluster-creation \
--parameter project_id=PROJECT_ID \
--parameter cluster_name=CLUSTER_NAME \
--parameter OPTIONAL_FLAGS
Docker
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 dataproc/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 che contiene la risorsa
- CLUSTER_NAME: il nome del cluster Dataproc 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 Dataproc di destinazione nel tuo progettoservice_account
: L'account di servizio VM del cluster Dataprocsubnetwork
: il percorso URI completo della subnet del cluster Dataprocinternal_ip_only
: Vero o falsocross_project
: L'ID cross-project se il cluster Dataproc 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--parameter
o-p
: parametri del runbook
Per un elenco e una descrizione di tutti i flag dello strumento gcpdiag
, consulta le
istruzioni per l'utilizzo di gcpdiag
.
Comprendere e correggere gli errori di creazione del cluster
Questa sezione elenca i messaggi di errore di Dataproc, le cause comuni e le soluzioni.
Timeout dell'operazione: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 riesce a comunicare con i nodi worker.
Soluzione:
- Controlla gli avvisi relativi alle regole firewall.
- Assicurati che siano presenti le regole firewall corrette. Per ulteriori informazioni, consulta Panoramica delle regole firewall Dataproc predefinite.
- Esegui un test di connettività nella console Google Cloud per determinare cosa blocca la comunicazione tra il controller e i nodi worker.
Autorizzazione
compute.subnetworks.use
obbligatoria perprojects/{projectId}/regions/{region}/subnetworks/{subnetwork}
Causa: questo errore può verificarsi quando tenti di configurare un cluster Dataproc utilizzando una rete VPC in un altro progetto e il account di servizio dell'agente di servizio Dataproc non dispone delle autorizzazioni necessarie per il progetto VPC condiviso che ospita la rete.
Soluzione: segui i passaggi descritti in Crea 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:
- Crea il cluster in una zona diversa.
- Utilizza la funzionalità Posizionamento automatico della zona di Dataproc.
Errori di superamento quota
Quota CPUS/CPUS_ALL_REGIONS insufficiente
Quota "DISKS_TOTAL_GB" insufficiente
Quota "IN_USE_ADDRESSES" insufficienteCausa: la tua richiesta di CPU, disco o indirizzo IP supera la quota disponibile.
Soluzione: richiedi una quota aggiuntiva dalla consoleGoogle Cloud .
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
. ... Visualizza l'output in:<gs://PATH_TO_STARTUP_SCRIPT_OUTPUT>
Causa: impossibile inizializzare il nodo controller del cluster Dataproc.
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 Dataproc e installazione non riuscita delle dipendenze dei pacchetti Python.
- Se il problema non viene risolto dopo aver esaminato i log dello script di avvio, correggi eventuali problemi lato utente, quindi riprova con il backoff esponenziale e 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 di indirizzi IP necessario per il provisioning dei nodi del cluster richiesti non è disponibile.
Soluzione:
- Crea un cluster su una subnet o una rete diversa.
- Riduci l'utilizzo sulla rete per liberare spazio per gli 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 rilascio
Causa: il repository Debian oldstable backports è stato eliminato.
Soluzione:
Aggiungi il seguente codice prima del codice che esegue
apt-get
nello 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 fi
Timeout in attesa che l'istanza
DATAPROC_CLUSTER_VM_NAME
invii un report o Rete non raggiungibile:dataproccontrol-REGION.googleapis.com
Causa: questi messaggi di errore indicano che la configurazione di rete del tuo cluster Dataproc è incompleta: potrebbero mancare l'instradamento al gateway internet predefinito o le regole firewall.
Soluzione:
Per risolvere il problema, puoi creare i seguenti test della connettività:
- Crea un test di connettività tra due VM cluster Dataproc. 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 Dataproc e un indirizzo IP API di controllo Dataproc corrente. Per ottenere un indirizzo IP API di controllo Dataproc attuale, utilizza il seguente comando:
dig dataproccontrol-REGION.googleapis.com A
Utilizza uno qualsiasi 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/0
per IPv4 e::/0
per 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 Dataproc, ma non è stato in grado di eseguire lo scale up o lo scale down manualmente o tramite la scalabilità automatica. Questo errore può anche essere causato da una configurazione del cluster non standard.
Soluzione:
Reimpostazione del cluster:apri un ticket di assistenza, includi un file tar di diagnostica e chiedi che il cluster venga reimpostato sullo stato RUNNING.
Nuovo cluster: ricrea il cluster con la stessa configurazione. Questa soluzione può essere più rapida di un ripristino fornito dall'assistenza.
Suggerimenti per la risoluzione dei problemi relativi ai cluster
Questa sezione fornisce ulteriori indicazioni per la risoluzione dei problemi comuni che possono impedire la creazione di cluster Dataproc.
Quando il provisioning di un cluster Dataproc non riesce, spesso viene generato
un messaggio di errore generico o viene segnalato uno stato PENDING
o PROVISIONING
prima di non riuscire. 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 e messaggi di errore comuni
Di seguito sono riportati i sintomi e i messaggi di errore comuni associati agli errori di creazione del cluster:
- Lo stato del cluster rimane
PENDING
oPROVISIONING
per 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
: relative a quote di CPU, disco o indirizzo IPInstance failed to start
Permission denied
Unable to connect to service_name.googleapis.com
oCould not reach required Google APIs
Connection refused
onetwork unreachable
- Errori relativi all'esito negativo delle azioni di inizializzazione, come errori di esecuzione dello script e file non trovato.
Esamina i log del cluster
Un passaggio iniziale importante per diagnosticare gli errori di creazione del cluster è esaminare i log dettagliati del cluster disponibili in Cloud Logging.
- Vai a Esplora log: apri Esplora log nella console Google Cloud .
- Filtra i cluster Dataproc:
- Nel menu a discesa Risorsa, seleziona
Cloud Dataproc Cluster
. - Inserisci il tuo
cluster_name
eproject_id
. Puoi anche filtrare perlocation
(regione).
- Nel menu a discesa Risorsa, seleziona
- Esamina le voci di log:
- Cerca messaggi di livello
ERROR
oWARNING
che si verificano in prossimità dell'ora in cui la creazione del cluster non è riuscita. - Presta attenzione ai log dei componenti
master-startup
,worker-startup
eagent
per informazioni dettagliate sui problemi a livello di VM o dell'agente Dataproc. - Per informazioni sui problemi relativi al tempo di avvio della VM, filtra i log in base a
resource.type="gce_instance"
e cerca i messaggi dai nomi delle istanze associati ai nodi del cluster, ad esempioCLUSTER_NAME-m
oCLUSTER_NAME-w-0
. I log della console seriale possono rivelare problemi di configurazione di rete, problemi del disco e errori di script che si verificano all'inizio del ciclo di vita della VM.
- Cerca messaggi di livello
Cause comuni di errori del cluster e suggerimenti per la risoluzione dei problemi
Questa sezione illustra i motivi più comuni per cui la creazione del cluster Dataproc potrebbe non riuscire e fornisce suggerimenti per la risoluzione dei problemi relativi agli errori del cluster.
Autorizzazioni IAM insufficienti
Il service account VM utilizzato dal cluster Dataproc deve disporre dei ruoli IAM appropriati per eseguire il provisioning delle istanze di Compute Engine, accedere ai bucket Cloud Storage, scrivere log e interagire con altri servizi Google Cloud .
- Ruolo Worker richiesto: verifica che il account di servizio VM disponga del ruolo
Dataproc Worker (
roles/dataproc.worker
). Questo ruolo dispone delle autorizzazioni minime richieste per Dataproc per gestire le risorse del cluster. - Autorizzazioni di accesso ai dati: se i tuoi job leggono o scrivono in Cloud Storage o BigQuery, il account di servizio ha bisogno di ruoli correlati, come
Storage Object Viewer
,Storage Object Creator
oStorage Object Admin
per Cloud Storage oppureBigQuery Data Viewer
oBigQuery Editor
per 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 VM che il cluster è configurato per utilizzare. Se non specificato, il valore predefinito è l'account di servizio Compute Engine predefinito.
Verifica i ruoli IAM: vai alla pagina IAM e amministrazione > IAM nella console Google Cloud , trova il account di servizio VM del cluster e verifica che disponga dei ruoli necessari per le operazioni del cluster. Concedi i ruoli mancanti.
Quote delle risorse superate
I cluster Dataproc utilizzano risorse di Compute Engine e di altri Google Cloud servizi. Il superamento delle quote di progetto o regionali può causare errori di creazione del cluster.
- Quote di Dataproc comuni da controllare:
CPUs
(regione)DISKS_TOTAL_GB
(regione)IN_USE_ADDRESSES
(regionale per gli IP interni, globale per gli IP esterni)- Quote API Dataproc, ad esempio
ClusterOperationRequestsPerMinutePerProjectPerRegion
.
Suggerimenti per la risoluzione dei problemi:
- Esamina le quote: vai alla pagina IAM e amministrazione > IAM nella console Google Cloud . Filtra per "Servizio" per "API Compute Engine" e "API Dataproc".
- Controlla l'utilizzo rispetto al limite: identifica le quote che hanno raggiunto o quasi raggiunto i limiti.
- Se necessario, richiedi un aumento della quota.
Problemi di configurazione di rete
I problemi di configurazione di rete, come configurazione errata di rete VPC, subnet, firewall o DNS, sono una causa comune di errori di creazione del cluster. Le istanze del cluster devono essere in grado di comunicare tra loro e con le API di Google.
- Rete e subnet VPC:
- Verifica che la rete VPC e la subnet del cluster esistano e siano configurate correttamente.
- Verifica che la subnet disponga di 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 Dataproc creati con versioni immagine 2.2+ eseguono il provisioning di 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 Dataproc, ad esempio
dataproc.googleapis.com
,storage.googleapis.com
,compute.googleapis.com
elogging.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 risorse in altre reti VPC, ad esempio progetti host VPC condivisi o altri VPC dei clienti, verifica che il peering VPC sia configurato correttamente e che le route si propaghino.
Regole firewall:
- Regole predefinite: verifica che le regole firewall predefinite, ad esempio
allow-internal
oallow-ssh
, non siano eccessivamente restrittive. Regole personalizzate: se sono presenti 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 indirizzi IP pubblici o un gateway internet, l'accesso privato Google o endpoint Private Service Connect.
Traffico verso qualsiasi servizio o origine dati esterni da cui dipendono i tuoi 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 qualsiasi servizio interno o esterno.
Suggerimenti per la risoluzione dei problemi:
- Rivedi la configurazione di rete: esamina le impostazioni di rete VPC e 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:
ping
ocurl
a domini API Google esterni, ad esempiostorage.googleapis.com
.nslookup
per 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 Dataproc sono script che vengono 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 individuare errori di azioni di inizializzazione: cerca voci di log correlate a
init-actions
ostartup-script
per le istanze del cluster in Cloud Logging. - Controlla i percorsi e le autorizzazioni degli script: verifica che gli script
dell'azione di inizializzazione si trovino correttamente in Cloud Storage e che l'account di servizio VM del cluster
disponga del ruolo
Storage Object Viewer
necessario 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)
Di tanto in tanto, un tipo di macchina o una risorsa in una regione o zona
risulta temporaneamente non disponibile (esaurimento scorte). In genere, ciò comporta
errori RESOURCE_EXHAUSTED
non correlati a problemi di quota del progetto.
Suggerimenti per la risoluzione dei problemi:
- Prova con un'altra zona o regione: prova a creare il cluster in una zona diversa all'interno della stessa regione o in una regione diversa.
- Utilizza il posizionamento automatico della zona: utilizza la funzionalità Posizionamento automatico della zona di Dataproc 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 per la risoluzione dei problemi eseguiti. Inoltre, fornisci le seguenti informazioni:
- Dati diagnostici del cluster
- Output del seguente comando:
gcloud dataproc clusters describe CLUSTER_NAME \ -region=REGION
- Log esportati per il cluster non riuscito.
Passaggi successivi
- Scopri di più sugli strumenti di monitoraggio e risoluzione dei problemi di Dataproc.
- Scopri come diagnosticare i cluster Dataproc.
- Consulta il documento Domande frequenti su Dataproc .