Usar a ferramenta gcpdiag
gcpdiag
é uma ferramenta de código aberto. Não é um produto Google Cloud com suporte oficial.
Use a ferramenta gcpdiag
para identificar e corrigir problemas no projeto Google Cloud. Para mais informações, consulte o projeto gcpdiag no GitHub.
A ferramenta gcpdiag
ajuda a descobrir os seguintes problemas de criação de clusters do Dataproc realizando estas verificações:
- Erros de falta de estoque:avalia os registros da Análise de registros para descobrir faltas de estoque em regiões e zonas.
- Cota insuficiente:verifica a disponibilidade de cota no projeto do cluster do Dataproc.
- Configuração de rede incompleta:realiza testes de conectividade de rede,
incluindo verificações de regras de firewall necessárias e configuração de IP externo e interno. Se o cluster tiver sido excluído, a ferramenta
gcpdiag
não poderá fazer uma verificação de conectividade de rede. - Configuração incorreta entre projetos:verifica contas de serviço entre projetos e revisa outras funções e a aplicação de políticas da organização.
- Funções do IAM da rede de nuvem privada virtual compartilhada ausentes:se o cluster do Dataproc usar uma rede VPC compartilhada, verifique a adição das funções necessárias da conta de serviço.
- Falhas na ação de inicialização: avalia os registros do Explorador de registros para descobrir falhas e tempos limite de scripts de ação de inicialização.
Para uma lista de etapas de criação de clusters do gcpdiag
, consulte
Etapas possíveis.
Execute o comando gcpdiag
.
É possível executar o comando gcpdiag
no Cloud Shell no
consoleGoogle Cloud ou em um contêiner Docker.
Google Cloud console
- Preencha e copie o comando a seguir.
- Abra o Google Cloud console e ative o Cloud Shell. Abrir Console do Cloud
- Cole o comando copiado.
- Execute o comando
gcpdiag
, que faz o download da imagem Dockergcpdiag
. e realiza verificações de diagnóstico. Se aplicável, siga as instruções de saída para corrigir verificações com falha.
gcpdiag runbook dataproc/cluster-creation \
--parameter project_id=PROJECT_ID \
--parameter cluster_name=CLUSTER_NAME \
--parameter OPTIONAL_FLAGS
Docker
Você pode
executar gcpdiag
usando um wrapper que inicia gcpdiag
em um contêiner do Docker. Docker ou
Podman precisa ser instalado.
- Copie e execute o seguinte comando na estação de trabalho local.
curl https://gcpdiag.dev/gcpdiag.sh >gcpdiag && chmod +x gcpdiag
- Execute o comando
gcpdiag
../gcpdiag runbook dataproc/cluster-creation \ --parameter project_id=PROJECT_ID \ --parameter cluster_name=CLUSTER_NAME \ --parameter OPTIONAL_FLAGS
Veja os parâmetros disponíveis para este runbook.
Substitua:
- PROJECT_ID: o ID do projeto que contém o recurso
- CLUSTER_NAME: o nome do cluster do Dataproc de destino no seu projeto.
- OPTIONAL_PARAMETERS: adicione um ou mais dos seguintes parâmetros opcionais. Esses parâmetros são obrigatórios se o cluster foi excluído.
cluster_uuid
: o UUID do cluster do Dataproc de destino no seu projeto.service_account
: a conta de serviço da VM do cluster do Dataprocsubnetwork
: o caminho completo do URI da sub-rede do cluster do Dataproc.internal_ip_only
: verdadeiro ou falsocross_project
: o ID entre projetos se o cluster do Dataproc usar uma conta de serviço de VM em outro projeto.
Flags úteis
--universe-domain
: se aplicável, a Nuvem soberana de parceiro confiável que hospeda o recurso--parameter
ou-p
: parâmetros do runbook
Para conferir uma lista e descrição de todas as flags da ferramenta gcpdiag
, consulte
Instruções de uso do gcpdiag
.
Entender e corrigir erros de criação de cluster
Nesta seção, listamos as mensagens de erro do Dataproc e as causas e soluções comuns.
Operação expirada:somente 0 de dois nós de dados/gerenciadores de nós obrigatórios em execução.
Causa: o nó do controlador não consegue criar o cluster porque não pode se comunicar com os nós de trabalho.
Solução:
- Verifique os avisos de regras do firewall.
- Verifique se as regras de firewall corretas estão em vigor. Para mais informações, consulte Visão geral das regras de firewall padrão do Dataproc.
- Faça um teste de conectividade no console do Google Cloud para determinar o que está bloqueando a comunicação entre os nós de controlador e de trabalho.
Permissão
compute.subnetworks.use
necessária paraprojects/{projectId}/regions/{region}/subnetworks/{subnetwork}
Causa: esse erro pode ocorrer quando você tenta configurar um cluster do Dataproc usando uma rede VPC em outro projeto e a conta de serviço do agente de serviços do Dataproc não tem as permissões necessárias no projeto de VPC compartilhada que hospeda a rede.
Solução: siga as etapas listadas em Criar um cluster que usa uma rede VPC em outro projeto.
A zona
projects/zones/{zone}
não tem recursos suficientes disponíveis para atender à solicitação(resource type:compute)
Causa: a zona usada para criar o cluster não tem recursos suficientes.
Solução:
- Crie o cluster em uma zona diferente.
- Use o recurso Posição de zona automática do Dataproc.
Erros de cota excedida
Cota insuficiente de CPUs/CPUS_ALL_REGIONS
Cota insuficiente de "DISKS_TOTAL_GB"
Cota insuficiente "IN_USE_ADDRESSES"Causa: sua solicitação de CPU, disco ou endereço IP excede a cota disponível.
Solução: solicite mais cota no console doGoogle Cloud .
Falha na ação de inicialização
Causa: a ação de inicialização fornecida durante a criação do cluster não foi instalada.
Solução:
- Consulte considerações e diretrizes de ações de inicialização.
- Analise os registros de saída. A mensagem de erro precisa fornecer um link para os registros no Cloud Storage.
Falha ao inicializar o nó
CLUSTER-NAME-m
. ... Consulte a saída em:<gs://PATH_TO_STARTUP_SCRIPT_OUTPUT>
Causa: não foi possível inicializar o nó do controlador do cluster do Dataproc.
Solução:
- Analise os registros de saída do script de inicialização listados na mensagem de erro (
gs://PATH_TO_STARTUP_SCRIPT_OUTPUT
) e verifique a causa da falha na inicialização do nó. - As causas podem incluir problemas de configuração de rede do cluster do Dataproc e falha na instalação de dependências de pacotes Python.
- Se o problema não for resolvido depois que você analisar os registros do script de inicialização, corrija os problemas do lado do usuário e tente de novo com espera exponencial. Se o problema persistir, entre em contato com o suporte do Google Cloud.
- Analise os registros de saída do script de inicialização listados na mensagem de erro (
Falha na criação do cluster: espaço de endereço IP esgotado
Causa: o espaço de endereço IP necessário para provisionar os nós do cluster solicitados está indisponível.
Solução:
- Crie um cluster em uma sub-rede ou rede diferente.
- Reduza o uso na rede para liberar espaço de endereço IP.
- Aguarde até que haja espaço de IP suficiente disponível na rede.
Mensagem de erro do script de inicialização: o repositório REPO_NAME não tem mais um arquivo de lançamento
Causa: o repositório de backports do Debian oldstable foi removido.
Solução:
Adicione o seguinte código antes do código que executa
apt-get
no script de inicialização.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
Tempo limite de espera para a instância
DATAPROC_CLUSTER_VM_NAME
informar ou A rede está inacessível:dataproccontrol-REGION.googleapis.com
Causa: essas mensagens de erro indicam que a configuração de rede do cluster do Dataproc está incompleta. Talvez esteja faltando a rota para o gateway de Internet padrão ou as regras de firewall.
Solução:
Para resolver esse problema, crie os seguintes Testes de conectividade:
- Crie um teste de conectividade entre duas VMs de cluster do Dataproc. O resultado desse teste ajuda você a entender se as regras de firewall de permissão de entrada ou saída da sua rede se aplicam corretamente às VMs do cluster.
- Crie um teste de conectividade entre uma VM de cluster do Dataproc e um endereço IP da API de controle do Dataproc atual. Para receber um endereço IP atual da API de controle do Dataproc, use o seguinte comando:
dig dataproccontrol-REGION.googleapis.com A
Use qualquer um dos endereços IPv4 na seção de respostas da saída.
O resultado do teste de conectividade vai ajudar você a entender se a rota para o gateway de Internet padrão e o firewall de saída estão configurados corretamente.
Com base nos resultados dos testes de conectividade:
- Adicione uma rota à Internet à rede VPC do cluster:
0.0.0.0/0
para IPv4 e::/0
para IPv6 com--next-hop-gateway=default-internet-gateway
. - Adicione regras de firewall para controle de acesso.
Erro devido a uma atualização
Causa: o cluster aceitou um job enviado ao serviço do Dataproc, mas não foi possível escalonar verticalmente ou horizontalmente de forma manual ou por escalonamento automático. Esse erro também pode ser causado por uma configuração de cluster não padrão.
Solução:
Redefinição do cluster:abra um tíquete de suporte, inclua um arquivo tar de diagnóstico e peça para que o cluster seja redefinido para o estado EM EXECUÇÃO.
Novo cluster:recrie o cluster com a mesma configuração. Essa solução pode ser mais rápida do que uma redefinição fornecida pelo suporte.
Dicas para solucionar problemas de cluster
Esta seção oferece mais orientações sobre a solução de problemas comuns que podem impedir a criação de clusters do Dataproc.
Quando um cluster do Dataproc não é provisionado, ele geralmente gera uma mensagem de erro genérica ou informa um status PENDING
ou PROVISIONING
antes de falhar. A chave para diagnosticar e resolver problemas de falha do cluster é examinar os registros do cluster e avaliar os pontos de falha comuns.
Sintomas e mensagens de erro comuns
Confira a seguir os sintomas e mensagens de erro comuns associados a falhas na criação de clusters:
- O status do cluster permanece
PENDING
ouPROVISIONING
por um longo período. - O cluster faz a transição para o estado
ERROR
. - Erros genéricos da API durante a criação do cluster, como
Operation timed out
. Mensagens de erro registradas ou de resposta da API, como:
RESOURCE_EXHAUSTED
: relacionado a cotas de CPU, disco ou endereço IPInstance failed to start
Permission denied
Unable to connect to service_name.googleapis.com
ouCould not reach required Google APIs
Connection refused
ounetwork unreachable
- Erros relacionados à falha das ações de inicialização, como erros de execução de script e arquivo não encontrado.
Analisar registros de cluster
Uma etapa inicial importante ao diagnosticar falhas na criação de clusters é revisar os registros detalhados disponíveis no Cloud Logging.
- Acesse o Explorador de registros: abra o Explorador de registros no console Google Cloud .
- Filtre os clusters do Dataproc:
- No menu suspenso Recurso, selecione
Cloud Dataproc Cluster
. - Insira seu
cluster_name
eproject_id
. Também é possível filtrar porlocation
(região).
- No menu suspenso Recurso, selecione
- Analise as entradas de registro:
- Procure mensagens de nível
ERROR
ouWARNING
que ocorram perto do momento da falha na criação do cluster. - Preste atenção aos registros dos componentes
master-startup
,worker-startup
eagent
para insights sobre problemas no nível da VM ou do agente do Dataproc. - Para ter insights sobre problemas de tempo de inicialização da VM, filtre os registros por
resource.type="gce_instance"
e procure mensagens dos nomes de instâncias associados aos nós do cluster, comoCLUSTER_NAME-m
ouCLUSTER_NAME-w-0
. Os registros do console serial podem revelar problemas de configuração de rede, problemas de disco e falhas de script que ocorrem no início do ciclo de vida da VM.
- Procure mensagens de nível
Causas comuns de falhas no cluster e dicas para resolver problemas
Esta seção descreve os motivos comuns para a falha na criação de um cluster do Dataproc e oferece dicas para resolver problemas.
Permissões do IAM insuficientes
A conta de serviço da VM usada pelo cluster do Dataproc precisa ter os papéis do IAM adequados para provisionar instâncias do Compute Engine, acessar buckets do Cloud Storage, gravar registros e interagir com outros serviços do Google Cloud .
- Papel de worker obrigatório: verifique se a conta de serviço da VM tem o papel
Worker do Dataproc (
roles/dataproc.worker
). Esse papel tem as permissões mínimas necessárias para que o Dataproc gerencie os recursos do cluster. - Permissões de acesso a dados: se os jobs lerem ou gravarem no Cloud Storage ou no BigQuery, a conta de serviço precisará de papéis relacionados, como
Storage Object Viewer
,Storage Object Creator
ouStorage Object Admin
para o Cloud Storage ouBigQuery Data Viewer
ouBigQuery Editor
para o BigQuery. - Permissões de geração de registros: a conta de serviço precisa ter um papel com as permissões
necessárias para gravar registros no Cloud Logging, como o papel
Logging Writer
.
Dicas para solução de problemas:
Identifique a conta de serviço: determine a conta de serviço da VM que seu cluster está configurado para usar. Se não for especificado, o padrão será a conta de serviço padrão do Compute Engine.
Verifique os papéis do IAM: acesse a página IAM e administrador > IAM no console Google Cloud , encontre a conta de serviço da VM do cluster e verifique se ela tem os papéis necessários para as operações do cluster. Conceda os papéis que estiverem faltando.
Cotas de recursos excedidas
Os clusters do Dataproc consomem recursos do Compute Engine e de outros serviços do Google Cloud . Exceder as cotas regionais ou de projeto pode causar falhas na criação do cluster.
- Cotas comuns do Dataproc para verificar:
CPUs
(regional)DISKS_TOTAL_GB
(regional)IN_USE_ADDRESSES
(regional para IPs internos, global para IPs externos)- Cotas da API Dataproc, como
ClusterOperationRequestsPerMinutePerProjectPerRegion
.
Dicas para solução de problemas:
- Analise as cotas: acesse a página IAM e administrador > IAM no console do Google Cloud . Filtre por "Serviço" para "API Compute Engine" e "API Dataproc".
- Verifique o uso em relação ao limite: identifique as cotas que estão no limite ou perto dele.
- Se necessário, solicite um aumento de cota.
Problemas de configuração de rede
Problemas de configuração de rede, como configuração incorreta de rede VPC, sub-rede, firewall ou DNS, são uma causa comum de falhas na criação de clusters. As instâncias do cluster precisam se comunicar entre si e com as APIs do Google.
- Rede e sub-rede VPC:
- Verifique se a rede VPC e a sub-rede do cluster existem e estão configuradas corretamente.
- Verifique se a sub-rede tem um intervalo suficiente de endereços IP disponíveis.
- Acesso privado do Google (PGA): se as VMs do cluster tiverem endereços IP internos e precisarem acessar as APIs do Google para o Cloud Storage, o Cloud Logging e outras operações, verifique se o Acesso privado do Google está ativado na sub-rede. Por padrão, os clusters do Dataproc criados com versões de imagem 2.2 ou mais recentes provisionam VMs com endereços IP somente internos e o Acesso privado do Google ativado na sub-rede regional do cluster.
- Private Service Connect
(PSC): se você estiver usando o
Private Service Connect para acessar APIs
do Google, verifique se os
endpoints do Private Service Connect
necessários estão configurados corretamente para as APIs do Google de que o Dataproc
depende, como
dataproc.googleapis.com
,storage.googleapis.com
,compute.googleapis.com
elogging.googleapis.com
. As entradas de DNS das APIs precisam ser resolvidas para endereços IP particulares. O uso do Private Service Connect não elimina a necessidade de usar o peering de VPC para se comunicar com outras redes VPC gerenciadas pelo cliente. . - Peering de VPC: se o cluster se comunicar com recursos em outras redes VPC, como projetos host de VPC compartilhada ou outras VPCs de clientes, verifique se o peering de VPC está configurado corretamente e se as rotas estão sendo propagadas.
Regras de firewall:
- Regras padrão: verifique se as regras de firewall padrão, como
allow-internal
ouallow-ssh
, não são muito restritivas. Regras personalizadas: se houver regras de firewall personalizadas, verifique se elas permitem os caminhos de comunicação necessários:
- Comunicação interna no cluster (entre nós -m e -w).
Tráfego de saída de VMs do cluster para APIs do Google, usando IPs públicos ou um gateway de Internet, Acesso privado do Google ou endpoints do Private Service Connect.
Tráfego para fontes de dados ou serviços externos de que seus jobs dependem.
- Regras padrão: verifique se as regras de firewall padrão, como
Resolução de DNS: confirme se as instâncias do cluster podem resolver corretamente os nomes DNS das APIs do Google e de qualquer serviço interno ou externo.
Dicas para solução de problemas:
- Revise a configuração de rede: inspecione as configurações de rede VPC e sub-rede em que o cluster está sendo implantado.
- Verifique as regras de firewall: analise as regras de firewall na rede VPC ou no projeto host da VPC compartilhada.
- Teste a conectividade: inicie uma VM temporária do Compute Engine
na sub-rede do cluster e execute as seguintes etapas:
ping
oucurl
para domínios externos da API Google, comostorage.googleapis.com
.nslookup
para verificar a resolução de DNS para os endereços IP esperados (Acesso privado do Google ou Private Service Connect).- Execute Google Cloud testes de conectividade para diagnosticar caminhos de uma VM de teste até os endpoints relevantes.
Falhas na ação de inicialização
As ações de inicialização do Dataproc são scripts executados em VMs do cluster durante a criação do cluster. Erros nesses scripts podem impedir a inicialização do cluster.
Dicas para solução de problemas:
- Examine os registros em busca de erros de ação de inicialização: procure entradas de registro relacionadas a
init-actions
oustartup-script
para as instâncias do cluster no Cloud Logging. - Verifique os caminhos e as permissões dos scripts: verifique se os scripts de ação de inicialização
estão localizados corretamente no Cloud Storage e se a conta de serviço da VM do cluster
tem a função
Storage Object Viewer
necessária para ler os scripts do Cloud Storage. - Depure a lógica do script: teste a lógica do script em uma VM separada do Compute Engine que imita o ambiente do cluster para identificar erros. Adicione o registro detalhado ao script.
Disponibilidade regional de recursos (falta de estoque)
Às vezes, um tipo de máquina ou recurso em uma região ou zona
fica temporariamente indisponível (esgotado). Normalmente, isso resulta em erros RESOURCE_EXHAUSTED
não relacionados a problemas de cota do projeto.
Dicas para solução de problemas:
- Tente outra zona ou região: crie o cluster em uma zona diferente na mesma região ou em outra região.
- Use a colocação em zona automática: use o recurso Colocação em zona automática do Dataproc para selecionar automaticamente uma zona com capacidade.
- Ajuste o tipo de máquina: se você estiver usando um tipo de máquina personalizado ou especializado, tente um tipo de máquina padrão para ver se isso resolve o problema.
Próximas etapas
Se os problemas de falha do cluster persistirem:
- Entre em contato com o Cloud Customer Care.
Descreva o problema de falha do cluster e as etapas de solução de problemas realizadas.
Informe também o seguinte:
- Dados de diagnóstico do cluster
- Saída do seguinte comando:
gcloud dataproc clusters describe CLUSTER_NAME \ -region=REGION
- Registros exportados do cluster com falha.
Ler informações relacionadas
- Ferramentas de monitoramento e solução de problemas do Dataproc
- Diagnóstico de clusters do Dataproc
- Perguntas frequentes sobre o Dataproc