Resolução de problemas

Esta página explica vários cenários de erro e passos de resolução de problemas para resolver os erros.

Cenários de erros de conetividade e rede

Se o seu serviço tiver problemas de conetividade ou de rede, verifique os cenários nas secções seguintes para ver se um deles está a causar o problema.

A criação do serviço falha devido à restrição para restringir a interligação de VPCs

Não defina a restrição da política da organização para restringir o intercâmbio de VPCs. A especificação de constraints/compute.restrictVpcPeering faz com que o pedido de criação falhe com um erro INVALID_ARGUMENT. Se tiver de definir a restrição, use o seguinte comando para permitir under:folders/270204312590:

gcloud resource-manager org-policies allow compute.restrictVpcPeering under:folders/270204312590 --organization ORGANIZATION_ID

Para mais informações, consulte as restrições da política da organização.

A implementação entre projetos falha quando a conta de serviço pode não existir

Para criar um serviço Dataproc Metastore acessível numa rede pertencente a um projeto diferente daquele a que o serviço pertence, tem de conceder roles/metastore.serviceAgent ao agente de serviço Dataproc Metastore do projeto de serviço (service-SERVICE_PROJECT_NUMBER@gcp-sa-metastore.iam.gserviceaccount.com) na política de IAM do projeto de rede.

gcloud projects add-iam-policy-binding NETWORK_PROJECT_ID \
    --role "roles/metastore.serviceAgent" \
    --member "serviceAccount:service-SERVICE_PROJECT_NUMBER@gcp-sa-metastore.iam.gserviceaccount.com"

Para mais informações, consulte o artigo Configure uma implementação entre projetos.

O serviço de Metastore do Dataproc multirregião não é criado

Ao criar um serviço de Metastore do Dataproc multirregional, pode ver o seguinte erro:

The Dataproc Service Agent does not have permission to GET Dataproc Metastore service
'projects/<dpmsproject>/locations/nam7/services/<service>'. If using a service from the
cluster's project, please ensure the service agent has the Cloud IAM role
'roles/dataproc.serviceAgent'. Please see
https://cloud.google.com/dataproc/docs/concepts/iam/dataproc-
principals#service_agent_control_plane_identity for information on the Dataproc Service
Agent, and https://cloud.google.com/iam/docs/granting-changing-revoking-access#granting-
gcloud-manual for information on granting access.

Este erro ocorre se o cluster do Dataproc estiver num projeto diferente do Dataproc Metastore, mas não tiver concedido as autorizações corretas ao seu projeto.

Para resolver este erro, tem de conceder a autorização metastore.services.get à conta de serviço do Dataproc contida no seu projeto do Dataproc Metastore.

É necessário um IP privado para a conetividade de rede

O Dataproc Metastore usa apenas IP privado, pelo que nenhum IP público é exposto. Isto significa que apenas as VMs na rede da nuvem virtual privada (VPC) fornecida ou nas instalações (ligadas através do Cloud VPN ou do Cloud Interconnect) podem aceder ao serviço Dataproc Metastore.

Para mais informações, consulte o artigo Acesso ao serviço.

Regra de firewall ingress-allow necessária para o Kerberos

O Kerberos requer que o Dataproc Metastore inicie ligações a anfitriões na rede do seu projeto. Tem de criar uma regra de firewall que permita a entrada de TCP e UDP em todas as portas do bloco de IP que contém o IP do Dataproc Metastore./17

Para mais informações, consulte os artigos Regras da firewall no seu KDC e Regras da firewall para os seus serviços.

Erro de ligação causado por recursos aprovisionados em redes VPC partilhadas

Se o seu Dataproc Metastore. Se isso acontecer, o Dataproc Metastore tenta reservar intervalos de endereços IP privados fora dos intervalos RFC 1918 para a criação de serviços. Para ver uma lista dos intervalos privados não RFC 1918 suportados, consulte os Intervalos válidos na documentação da rede VPC.} O serviço usa uma rede pertencente a um projeto diferente e o Compute Engine está protegido pelo perímetro de serviço. Nesse caso, o projeto do metastore e o projeto de rede têm de estar no mesmo perímetro.

Para adicionar projetos do Dataproc Metastore existentes ao perímetro, siga as instruções em Atualizar um perímetro de serviço.

Para mais informações, consulte o artigo VPC Service Controls com o Dataproc Metastore.

O intervalo de IPs atribuído está esgotado

A rede VPC fornecida pode ficar sem endereços RFC 1918 disponíveis necessários pelos serviços do Dataproc Metastore. Se isso acontecer, o Dataproc Metastore tenta reservar intervalos de endereços IP privados fora dos intervalos RFC 1918 para a criação de serviços. Para ver uma lista dos intervalos privados não RFC 1918 suportados, consulte os intervalos válidos na documentação da rede VPC.

Os endereços IP privados não RFC 1918 usados no Dataproc Metastore podem entrar em conflito com um intervalo numa rede no local que esteja ligada à rede VPC fornecida. Para verificar a lista de endereços IP privados RFC 1918 e não RFC 1918 reservados pelo Dataproc Metastore:

gcloud compute addresses list \
    --project NETWORK_PROJECT_ID \
    --filter="purpose:VPC_PEERING AND name ~ cluster|resourcegroup"

Se for determinado um conflito e não for possível mitigá-lo reconfigurando a rede no local, elimine o serviço Dataproc Metastore ofensivo e volte a criá-lo após 2 horas.

Para mais informações, consulte o artigo Esgotamento do intervalo de endereços IP.

Cenários de erro de limite de tempo da operação

Os seguintes cenários de erro resultam num serviço sem resposta ou em tempos limite de operação.

Use os registos de auditoria para resolver problemas de limite de tempo de operações

Para resolver problemas de tempo limite de operações de serviço, use o Explorador de registos na Google Cloud consola para obter as entradas do registo de auditoria do seu projeto do Google Cloud.

No painel do criador de consultas, selecione Recurso auditado ou audited_resource como o tipo de recurso, seguido de Dataproc Metastore ou metastore.googleapis.com como o serviço. Google Cloud A seleção de um método é opcional.

Para mais informações, consulte o artigo Ver registos.

Cenários de erros de importação e exportação

Esta secção descreve problemas comuns de importação e exportação do Dataproc Metastore.

A importação falha porque as versões do Hive não coincidem

Quando importa metadados, as versões do metastore do Hive e do Dataproc Metastore têm de ser compatíveis. A importação pode falhar se os dois não corresponderem.

Para mais informações sobre a compatibilidade, consulte a política de versões.

Pode verificar o Cloud Logging para ver se encontrou este erro. A seguinte mensagem é um exemplo deste erro.

Metastore schema version is not compatible. Hive Version: 3.1.0, Database Schema Version: 2.3.0

A importação falha porque faltam ficheiros da tabela Hive

Quando preparar a importação para o Avro, deve existir um ficheiro para cada tabela do Hive, mesmo que a tabela esteja vazia. Caso contrário, a importação falha.

Pode usar o Dataproc Metastore Toolkit como referência para verificar os esquemas de metadados do Hive corretos.

O agente de serviço ou o utilizador não tem as autorizações necessárias

O agente do serviço Dataproc Metastore (service-CUSTOMER_PROJECT_NUMBER@gcp-sa-metastore.iam.gserviceaccount.com) e o utilizador que importa os metadados têm de ter a seguinte autorização de leitura para o contentor do Cloud Storage usado para a importação:

  • Para o MySQL, têm de ter autorização storage.objects.get no objeto do Cloud Storage (ficheiro de despejo de SQL) usado para a importação.

  • Para o formato Avro, têm de ter autorização storage.objects.get no contentor do Cloud Storage usado para a importação.

Para exportações, o agente de serviço do Dataproc Metastore (service-CUSTOMER_PROJECT_NUMBER@gcp-sa-metastore.iam.gserviceaccount.com) e o utilizador que cria a exportação têm de ter autorização storage.objects.create no contentor.

A tarefa falha porque o ficheiro da base de dados é demasiado grande

Se o ficheiro da base de dados for demasiado grande, pode demorar mais do que o limite de tempo limite da tarefa para concluir o processo de importação ou exportação. Se a importação não puder ser concluída dentro do limite de tempo limite da tarefa de 3 horas, pode dividir os metadados em várias instâncias do Dataproc Metastore.

Cenários de erro de cópia de segurança e restauro

Esta secção descreve problemas comuns de cópia de segurança e restauro do Dataproc Metastore.

Não é possível criar uma nova cópia de segurança para um serviço

Se já existirem 7 cópias de segurança num serviço, tem de eliminar manualmente uma cópia de segurança antes de criar uma nova. Pode eliminar as cópias de segurança existentes no separador Cópia de segurança/restauro.

O utilizador não tem as autorizações necessárias

Para fazer uma cópia de segurança dos metadados, tem de pedir uma função do IAM que contenha a metastore.backups.create autorização do IAM.

Para restaurar metadados, tem de pedir uma função de IAM que contenha as autorizações de IAM metastore.services.restore e metastore.backups.use.

A tarefa falha porque o ficheiro de metadados do serviço é demasiado grande

Se o ficheiro de metadados do serviço for demasiado grande, pode demorar mais do que o limite de tempo limite da tarefa de uma hora a concluir o processo de cópia de segurança ou restauro.

Cenários de erro do cluster do Dataproc

As secções seguintes descrevem problemas comuns de clusters do Dataproc e autogeridos.

A associação do cluster do Dataproc falha devido a versões incompatíveis

Quando anexa um cluster do Dataproc, a imagem do Dataproc e a versão do Hive do Dataproc Metastore têm de ser compatíveis. Consulte as seguintes páginas de controlo de versões de imagens para garantir que a versão do Hive é compatível:

Para mais informações, consulte a lista de versões de imagens do Dataproc.

A criação do cluster do Dataproc falha devido a funções insuficientes

Quando cria um cluster do Dataproc, a criação do cluster falha com a seguinte mensagem de erro:

gcloud.dataproc.clusters.create) INVALID_ARGUMENT: Default Service Account '**********-compute@developer.gserviceaccount.com' is missing required permissions: [dataproc.agents.create, dataproc.agents.delete, dataproc.agents.get, dataproc.agents.update, dataproc.tasks.lease, dataproc.tasks.listInvalidatedLeases, dataproc.tasks.reportStatus]. Service Accounts must have either 'Dataproc/Dataproc Worker' role or all permissions granted by the role.

Isto pode ocorrer quando tenta criar um cluster do Dataproc e anexá-lo ao seu Dataproc Metastore.

Para corrigir este problema, conceda a função roles/dataproc.worker à sua conta de serviço. O exemplo seguinte ilustra como o fazer, usando alguns valores de amostra.

gcloud projects add-iam-policy-binding my_project \
    --member=219315-compute@developer.gserviceaccount.com \
    --role=roles/dataproc.worker

A ligação ao metastore falha devido a problemas de fuso horário

O seu ficheiro Hive devolve o erro The server time zone value 'CDT' is unrecognized or represents more than one time zone.

Se não conseguir estabelecer ligação ao metastore a partir do Dataproc, tem de eliminar o cluster atual e atualizar o comando gcloud dataproc clusters create ou a ferramenta de automatização para incluir o seguinte parâmetro de fuso horário:

--metadata "hive-metastore-uri=jdbc:mysql://10.207.26.77:3306/hive_metastore?serverTimezone=CST6CDT"

Resolução de problemas da CLI do Google Cloud

Se tiver um problema em que um comando da CLI gcloud não está disponível, ou se o comando se comportar de forma diferente da documentada, experimente atualizar a CLI gcloud:

gcloud components update

O que se segue?