Use a ferramenta gcpdiag
gcpdiag
é uma ferramenta de código aberto. Não é um produto Google Cloud suportado oficialmente.
Pode usar a ferramenta gcpdiag
para ajudar a identificar e corrigir Google Cloud
problemas do projeto. 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 através das seguintes verificações:
- Erros de rutura de stock: avalia os registos do Explorador de registos para descobrir ruturas de stock em regiões e zonas.
- Quota insuficiente: verifica a disponibilidade de quota no projeto do cluster do Dataproc.
- Configuração de rede incompleta: executa testes de conetividade de rede, incluindo verificações das regras de firewall necessárias e da configuração de IP externa e interna. Se o cluster tiver sido eliminado, a ferramenta
gcpdiag
não pode efetuar uma verificação da conetividade de rede. - Configuração incorreta entre projetos: verifica as contas de serviço entre projetos e revê a aplicação de funções adicionais e políticas da organização.
- Funções da IAM da rede da nuvem virtual privada partilhada em falta: se o cluster do Dataproc usar uma rede da VPC partilhada, verifica se foram adicionadas as funções da conta de serviço necessárias.
- Falhas na ação de inicialização: avalia os registos do Explorador de registos para descobrir falhas e tempos limite do script de ação de inicialização.
Para ver uma lista de gcpdiag
passos de criação de clusters, consulte a secção
Passos potenciais.
Execute o comando gcpdiag
Pode executar o comando gcpdiag
a partir do Cloud Shell na
Google Cloud consola ou num contentor Docker.
Google Cloud consola
- Conclua e, em seguida, copie o seguinte comando.
- Abra a Google Cloud consola e ative o Cloud Shell. Abra a Cloud Console
- Cole o comando copiado.
- Execute o comando
gcpdiag
, que transfere a imagem do Dockergcpdiag
e, em seguida, faz verificações de diagnóstico. Se aplicável, siga as instruções de saída para corrigir as verificações com falhas.
gcpdiag runbook dataproc/cluster-creation \
--parameter project_id=PROJECT_ID \
--parameter cluster_name=CLUSTER_NAME \
--parameter OPTIONAL_FLAGS
Docker
Pode
executar o gcpdiag
usando um wrapper que inicia o gcpdiag
num contentor do Docker. O Docker ou o Podman têm de estar instalados.
- Copie e execute o seguinte comando na sua 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 manual de procedimentos.
Substitua o seguinte:
- 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. Estes parâmetros são obrigatórios se
o cluster tiver sido eliminado.
cluster_uuid
: o UUID do cluster do Dataproc de destino no seu projetoservice_account
: a conta de serviço da VM do cluster do Dataprocsubnetwork
: O caminho do URI completo da sub-rede do cluster do Dataprocinternal_ip_only
: verdadeiro ou falsocross_project
: O ID entre projetos se o cluster do Dataproc usar uma conta de serviço de VM noutro projeto
Sinalizações úteis:
--universe-domain
: Se aplicável, o domínio de nuvem soberana de parceiros fidedignos que aloja o recurso--parameter
ou-p
: parâmetros do Runbook
Para ver uma lista e uma descrição de todas as flags da ferramenta gcpdiag
, consulte as
gcpdiag
instruções de utilização.
Compreenda e corrija erros de criação de clusters
Esta secção apresenta mensagens de erro do Dataproc, bem como as respetivas causas e soluções comuns.
A operação excedeu o tempo limite: apenas 0 de 2 datanodes/gestores de nós mínimos necessários em execução.
Causa: o nó do controlador não consegue criar o cluster porque não consegue comunicar com os nós de trabalho.
Solução:
- Verifique os avisos de regras de firewall.
- Certifique-se de que as regras de firewall corretas estão implementadas. Para mais informações, consulte o artigo Vista geral das regras de firewall predefinidas do Dataproc.
- Faça um teste de conetividade na Google Cloud consola para determinar o que está a bloquear a comunicação entre o controlador e os nós de trabalho.
Autorização
compute.subnetworks.use
necessária paraprojects/{projectId}/regions/{region}/subnetworks/{subnetwork}
Causa: este erro pode ocorrer quando tenta configurar um cluster do Dataproc usando uma rede VPC noutro projeto e a conta de serviço do agente de serviço do Dataproc não tem as autorizações necessárias no projeto de VPC partilhada que está a alojar a rede.
Solução: siga os passos indicados em Crie um cluster que use uma rede de VPC noutro projeto.
A zona
projects/zones/{zone}
não tem recursos suficientes disponíveis para satisfazer o pedido(resource type:compute)
Causa: a zona usada para criar o cluster não tem recursos suficientes.
Solução:
- Crie o cluster numa zona diferente.
- Use a funcionalidade de posicionamento automático de zonas do Dataproc.
Erros de quota excedida
Quota CPUS/CPUS_ALL_REGIONS insuficiente
Quota "DISKS_TOTAL_GB" insuficiente
Quota "IN_USE_ADDRESSES" insuficienteCausa: o seu pedido de CPU, disco ou endereço IP excede a quota disponível.
Solução: peça quota adicional na Google Cloud consola.
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:
- Veja as considerações e as diretrizes das ações de inicialização.
- Examine os registos de saída. A mensagem de erro deve fornecer um link para os registos no Cloud Storage.
Falha ao inicializar o nó
CLUSTER-NAME-m
. ... Ver resultado em:<gs://PATH_TO_STARTUP_SCRIPT_OUTPUT>
Causa: não foi possível inicializar o nó do controlador do cluster do Dataproc.
Solução:
- Reveja os registos de saída do script de arranque indicados 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 das dependências do pacote Python.
- Se o problema não for resolvido depois de rever os registos do script de arranque, corrija quaisquer problemas do lado do utilizador e, em seguida, tente novamente com o recuo exponencial. Contacte o apoio técnico do Google Cloud.
- Reveja os registos de saída do script de arranque indicados na mensagem de erro
(
Falha na criação do cluster: espaço de endereços IP esgotado
Causa: o espaço de endereços IP necessário para aprovisionar os nós do cluster pedidos não está disponível.
Solução:
- Crie um cluster numa sub-rede ou numa rede diferente.
- Reduza a utilização na rede para libertar espaço de endereços IP.
- Aguarde até que fique disponível espaço de IP suficiente na rede.
Mensagem de erro do script de inicialização: o repositório REPO_NAME já não tem um ficheiro de lançamento
Causa: o repositório de backports do Debian oldstable foi anulado.
Solução:
Adicione o seguinte código antes do código que é executado
apt-get
no seu 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 que a instância
DATAPROC_CLUSTER_VM_NAME
comunique ou A rede está inacessível:dataproccontrol-REGION.googleapis.com
Causa: estas mensagens de erro indicam que a configuração de rede do seu cluster do Dataproc está incompleta: pode estar a faltar a rota para o gateway de Internet predefinido ou as regras de firewall.
Solução:
Para resolver este problema, pode criar os seguintes testes de conetividade:
- Crie um teste de conetividade entre duas VMs do cluster do Dataproc. O resultado deste teste ajuda a compreender 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 conetividade entre uma VM do cluster do Dataproc e um endereço IP da API de controlo do Dataproc atual. Para obter um endereço IP atual da API Dataproc Control, use o seguinte comando:
dig dataproccontrol-REGION.googleapis.com A
Use qualquer um dos endereços IPv4 na secção de respostas do resultado.
O resultado do teste de conetividade ajuda a compreender se o caminho para o gateway de Internet predefinido e a firewall de saída estão configurados corretamente.
Com base nos resultados dos testes de conetividade:
- Adicione uma rota à Internet à sua 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 controlo de acesso.
Erro devido à atualização
Causa: o cluster aceitou uma tarefa enviada para o serviço Dataproc, mas não conseguiu aumentar ou diminuir a escala manualmente ou através do redimensionamento automático. Este erro também pode ser causado por uma configuração de cluster não padrão.
Solução:
Reposição do cluster: abra um pedido de apoio técnico, inclua um ficheiro TAR de diagnóstico e peça que o cluster seja reposto para um estado RUNNING.
Novo cluster: recrie o cluster com a mesma configuração. Esta solução pode ser mais rápida do que uma reposição fornecida pelo apoio técnico.
Sugestões de resolução de problemas de clusters
Esta secção fornece orientações adicionais sobre a resolução de problemas comuns que podem impedir a criação de clusters do Dataproc.
Quando um cluster do Dataproc não é aprovisionado, produz frequentemente uma mensagem de erro genérica ou comunica um estado PENDING
ou PROVISIONING
antes de falhar. A chave para diagnosticar e resolver problemas de falhas de clusters
é examinar os registos de clusters e avaliar os pontos de falhas comuns.
Sintomas e mensagens de erro comuns
Seguem-se os sintomas e as mensagens de erro comuns associados a falhas de criação de clusters:
- O estado do cluster permanece
PENDING
ouPROVISIONING
durante um período prolongado. - O cluster passa para o estado
ERROR
. - Erros genéricos da API durante a criação de clusters, como
Operation timed out
. Mensagens de erro registadas ou de resposta da API, como:
RESOURCE_EXHAUSTED
: relacionado com quotas 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 com a falha das ações de inicialização, como erros de execução de scripts e ficheiros não encontrados.
Reveja os registos do cluster
Um passo inicial importante ao diagnosticar falhas na criação de clusters é rever os registos detalhados de clusters disponíveis no Cloud Logging.
- Aceda ao Explorador de registos: abra o Explorador de registos na Google Cloud consola.
- Filtre por clusters do Dataproc:
- No menu pendente Recurso, selecione
Cloud Dataproc Cluster
. - Introduza o seu
cluster_name
eproject_id
. Também pode filtrar porlocation
(região).
- No menu pendente Recurso, selecione
- Examine as entradas do registo:
- Procure mensagens ao nível de
ERROR
ouWARNING
que ocorram perto da hora da falha de criação do cluster. - Preste atenção aos registos dos componentes
master-startup
,worker-startup
eagent
para obter estatísticas sobre problemas ao nível da VM ou do agente Dataproc. - Para obter informações detalhadas sobre problemas de tempo de arranque da VM, filtre os registos por
resource.type="gce_instance"
e procure mensagens dos nomes das instâncias associadas aos nós do cluster, comoCLUSTER_NAME-m
ouCLUSTER_NAME-w-0
. Os registos da consola série podem revelar problemas de configuração de rede, problemas de disco e falhas de scripts que ocorrem no início do ciclo de vida da VM.
- Procure mensagens ao nível de
Causas comuns de falhas de clusters e sugestões de resolução de problemas
Esta secção descreve os motivos comuns pelos quais a criação do cluster do Dataproc pode falhar e fornece sugestões de resolução de problemas para ajudar a resolver falhas de clusters.
Autorizações de IAM insuficientes
A conta de serviço da VM que o seu cluster do Dataproc usa tem de ter as funções da IAM adequadas para aprovisionar instâncias do Compute Engine, aceder a contentores do Cloud Storage, escrever registos e interagir com outros Google Cloud serviços.
- Função de trabalhador obrigatória: verifique se a conta de serviço da VM tem a função
Trabalhador do Dataproc (
roles/dataproc.worker
). Esta função tem as autorizações mínimas necessárias para o Dataproc gerir os recursos do cluster. - Autorizações de acesso aos dados: se os seus trabalhos lerem ou escreverem no Cloud Storage ou no BigQuery, a conta de serviço precisa de funções relacionadas, como
Storage Object Viewer
,Storage Object Creator
ouStorage Object Admin
para o Cloud Storage, ouBigQuery Data Viewer
ouBigQuery Editor
para o BigQuery. - Autorizações de registo: a conta de serviço tem de ter uma função com as autorizações
necessárias para escrever registos no Cloud Logging, como a função
Logging Writer
.
Sugestões de resolução de problemas:
Identifique a conta de serviço: determine a conta de serviço da VM que o cluster está configurado para usar. Se não for especificado, o valor predefinido é a conta de serviço predefinida do Compute Engine.
Verifique as funções do IAM: aceda à página IAM e administrador > IAM na Google Cloud consola, encontre a conta de serviço da VM do cluster e, em seguida, verifique se tem as funções necessárias para as operações do cluster. Conceda as funções em falta.
As quotas de recursos foram excedidas
Os clusters do Dataproc consomem recursos do Compute Engine e de outros Google Cloud serviços. Exceder as quotas regionais ou de projetos pode causar falhas na criação de clusters.
- Quotas do Dataproc comuns a verificar:
CPUs
(regional)DISKS_TOTAL_GB
(regional)IN_USE_ADDRESSES
(regional para IPs internos e global para IPs externos)- Quotas da API Dataproc, como
ClusterOperationRequestsPerMinutePerProjectPerRegion
.
Sugestões de resolução de problemas:
- Reveja as quotas: aceda à página IAM e administrador > IAM na Google Cloud consola. Filtre por "Serviço" para "API Compute Engine" e "API Dataproc".
- Verifique a utilização em comparação com o limite: identifique as quotas que estão nos respetivos limites ou perto deles.
- Se necessário, peça um aumento da quota.
Problemas de configuração de rede
Os problemas de configuração de rede, como a configuração incorreta da rede VPC, da sub-rede, da firewall ou do DNS, são uma causa comum de falhas na criação de clusters. As instâncias do cluster têm de conseguir comunicar entre si e com as APIs Google.
- Rede da VPC e sub-rede:
- 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 à Google (PGA): se as VMs do cluster tiverem endereços IP internos e precisarem de alcançar as APIs Google para o Cloud Storage, o Cloud Logging e outras operações, verifique se o acesso privado à Google está ativado na sub-rede. Por predefinição, os clusters do Dataproc criados com versões de imagens 2.2 ou superiores aprovisionam VMs com endereços IP apenas internos com o acesso privado à Google ativado na sub-rede regional do cluster.
- Private Service Connect
(PSC): se estiver a usar o
Private Service Connect para aceder às APIs
Google, verifique se os pontos finais do Private Service Connect
necessários estão configurados corretamente para as APIs Google das quais o Dataproc
depende, como
dataproc.googleapis.com
,storage.googleapis.com
,compute.googleapis.com
elogging.googleapis.com
. As entradas de DNS para as APIs têm de resolver para endereços IP privados. Tenha em atenção que a utilização do Private Service Connect não elimina a necessidade de usar o peering de VPC para comunicar com outras redes de VPC geridas pelo cliente. . - Interligação de VPCs: se o cluster comunicar com recursos noutras redes VPC, como projetos anfitriões de VPC partilhada ou outras VPCs de clientes, verifique se a interligação de VPCs está configurada corretamente e se os trajetos estão a propagar-se.
Regras de firewall:
- Regras predefinidas: verifique se as regras da firewall predefinidas, como
allow-internal
ouallow-ssh
, não são excessivamente restritivas. Regras personalizadas: se tiver regras de firewall personalizadas, verifique se estas permitem os caminhos de comunicação necessários:
- Comunicação interna no cluster (entre os nós -m e -w).
Tráfego de saída das VMs do cluster para as APIs Google, através de IPs públicos ou de um gateway de Internet, acesso privado à Google ou pontos finais do Private Service Connect.
Tráfego para quaisquer origens de dados ou serviços externos dos quais as suas tarefas dependem.
- Regras predefinidas: verifique se as regras da firewall predefinidas, como
Resolução de DNS: confirme se as instâncias do cluster conseguem resolver corretamente os nomes de DNS para as APIs Google e quaisquer serviços internos ou externos.
Sugestões de resolução de problemas:
- Reveja a configuração de rede: inspecione as definições da rede VPC e da sub-rede onde o cluster está a ser implementado.
- Verifique as regras de firewall: reveja as regras de firewall na rede de VPC ou no projeto anfitrião da VPC partilhada.
- Teste a conetividade: inicie uma VM do Compute Engine temporária na sub-rede do cluster e execute os seguintes passos:
ping
oucurl
para domínios da API Google externos, comostorage.googleapis.com
.nslookup
para validar a resolução de DNS para os endereços IP esperados (acesso privado à Google ou Private Service Connect).- Execute Google Cloud testes de conetividade para diagnosticar caminhos de uma VM de teste para pontos finais relevantes.
Falhas na ação de inicialização
As ações de inicialização do Dataproc são scripts executados em VMs de cluster durante a criação do cluster. Os erros nestes scripts podem impedir o arranque do cluster.
Sugestões de resolução de problemas:
- Examine os registos de erros de ações de inicialização: procure entradas de registo relacionadas com
init-actions
oustartup-script
para as instâncias do cluster no Cloud Logging. - Verifique os caminhos e as autorizações dos scripts: verifique se os scripts de ação de inicialização estão corretamente localizados 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 scripts do Cloud Storage. - Depure a lógica do script: teste a lógica do script numa VM do Compute Engine separada que imite o ambiente do cluster para identificar erros. Adicione o registo detalhado ao script.
Disponibilidade de recursos regionais (esgotados)
Ocasionalmente, um tipo de máquina ou um recurso numa região ou numa zona
fica temporariamente indisponível (esgotado). Normalmente, isto resulta em erros RESOURCE_EXHAUSTED
não relacionados com problemas de quota do projeto.
Sugestões de resolução de problemas:
- Experimente uma zona ou uma região diferente: tente criar o cluster numa zona diferente na mesma região ou numa região diferente.
- Use o posicionamento automático de zonas: use a funcionalidade posicionamento automático de zonas do Dataproc para selecionar automaticamente uma zona com capacidade.
- Ajuste o tipo de máquina: se estiver a usar um tipo de máquina personalizado ou especializado, experimente um tipo de máquina padrão para ver se isso resolve o problema.
Contacte o Cloud Customer Care
Se continuar a ter problemas de falha de cluster, contacte o apoio ao cliente da nuvem. Descreva o problema de falha do cluster e os passos de resolução de problemas realizados. Além disso, faculte as seguintes informações:
- Agrupe dados de diagnóstico
- Resultado do seguinte comando:
gcloud dataproc clusters describe CLUSTER_NAME \ -region=REGION
- Registos exportados para o cluster com falhas.
O que se segue?
- Saiba mais acerca das ferramentas de resolução de problemas e monitorização do Dataproc.
- Saiba como diagnosticar clusters do Dataproc.
- Consulte o documento de Perguntas frequentes do Dataproc .