Solução de problemas

Nesta página, explicamos vários cenários com erros e etapas de solução de problemas para resolvê-los.

Cenários de erro de rede e conectividade

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

A criação de serviços falha devido à restrição para restringir o peering de VPC

Não defina a restrição da política da organização para restringir o peering de VPC. Especificar constraints/compute.restrictVpcPeering faz com que sua solicitação de criação falhe com um erro INVALID_ARGUMENT. Se você precisar 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 Restrições da política da organização.

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

Para criar um serviço Metastore do Dataproc que possa ser acessado em uma rede pertencente a um projeto diferente daquele a que o serviço pertence, é preciso conceder roles/metastore.serviceAgent ao agente de serviço do metastore do Dataproc (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 Configurar uma implantação entre projetos.

Não é possível criar um serviço do Dataproc Metastore em várias regiões.

Ao criar um serviço Metastore do Dataproc multirregional, você pode receber 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.

Esse erro ocorre se o cluster do Dataproc estiver em um projeto diferente do metastore do Dataproc, mas você não tiver concedido as permissões corretas ao projeto.

Para resolver esse erro, conceda a permissão metastore.services.get à conta de serviço do Dataproc contida no seu projeto do Metastore do Dataproc.

O IP particular é necessário para conectividade de rede

Como o Metastore do Dataproc usa apenas IP privado, nenhum IP público é exposto. Isso significa que somente VMs na rede de nuvem privada virtual (VPC) fornecida ou no local (conectada por meio de Cloud VPN ou Cloud Interconnect) podem acessar serviço Dataprocstore do Dataproc.

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

Regra de firewall de permissão de entrada obrigatória para Kerberos

O Kerberos exige que o Metastore do Dataproc inicie conexões com os hosts na rede do projeto. Crie uma regra de firewall que permita a entrada TCP e UDP em todas as portas do bloco de IP /17 que contém o IP do metastore do Dataproc.

Para mais informações, consulte Regras de firewall no KDC e Regras de firewall para os serviços.

Erro de conexão causado por recursos provisionados em redes VPC compartilhada

Se o metastore do Dataproc. Se isso acontecer, o Metastore do Dataproc tentará reservar intervalos de endereços IP particulares fora dos intervalos RFC 1918 para a criação do serviço. Para uma lista de intervalos particulares não RFC 1918 compatíveis, consulte 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. O projeto do metastore e o projeto de rede precisam estar no mesmo perímetro.

Para adicionar projetos do metastore do Dataproc ao perímetro, siga as instruções em Como atualizar um perímetro de serviço.

Para mais informações, consulte VPC Service Controls com metastore do Dataproc.

O intervalo de IP alocado foi esgotado

A rede VPC fornecida pode acabar sem endereços RFC 1918 disponíveis exigidos pelos serviços do Metastore do Dataproc. Se isso acontecer, o Metastore do Dataproc tentará reservar intervalos de endereços IP particulares fora dos intervalos RFC 1918 para a criação do serviço. Para ver uma lista de intervalos particulares não RFC 1918 compatíveis, consulte Intervalos válidos na documentação da rede VPC.

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

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

Se um conflito for determinado e não puder ser atenuado com a reconfiguração da rede local, exclua o serviço Metastore do Dataproc e recrie-o novamente após duas horas.

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

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

Os cenários de erro a seguir resultam em um tempo limite de serviço ou de operação sem resposta.

Usar registros de auditoria para resolver problemas de tempo limite da operação

Para solucionar esses problemas, use o Explorador de registros no Console do Google Cloud para recuperar as entradas de registro de auditoria do projeto do Cloud.

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

Para mais informações, consulte Como visualizar registros.

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

Nesta seção, descrevemos problemas comuns de importação e exportação do metastore do Dataproc.

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

Quando você importa metadados, as versões do metastore do Hive e do metastore do Dataproc precisam ser compatíveis. A importação poderá falhar se os dois não corresponderem.

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

Verifique o Cloud Logging para saber se você encontrou esse erro. A mensagem abaixo é um exemplo desse erro.

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

A importação falha porque faltam arquivos de tabela do Hive

Ao preparar a importação para o Avro, haverá um arquivo para cada tabela do Hive, mesmo que ela esteja vazia. Caso contrário, a importação falhará.

Use o Kit de ferramentas do metastore do Dataproc como referência para verificar os esquemas corretos de metadados do Hive.

O agente de serviço ou o usuário não tem as permissões necessárias

O agente de serviço do metastore do Dataproc (service-CUSTOMER_PROJECT_NUMBER@gcp-sa-metastore.iam.gserviceaccount.com) e o usuário que importa os metadados precisam ter a seguinte permissão de leitura para o bucket do Cloud Storage usado para a importação:

  • Para o MySQL, eles precisam ter a permissão storage.objects.get no objeto do Cloud Storage (arquivo dump SQL) usado para a importação.

  • Para Avro, eles precisam ter a permissão storage.objects.get no bucket do Cloud Storage usado para a importação.

Para exportações, o agente de serviço do metastore do Dataproc (service-CUSTOMER_PROJECT_NUMBER@gcp-sa-metastore.iam.gserviceaccount.com) e o usuário que cria a exportação precisam ter a permissão storage.objects.create no bucket.

O job falha porque o arquivo do banco de dados é muito grande

Se o arquivo do banco de dados for muito grande, pode levar mais do que o tempo limite do job para concluir o processo de importação ou exportação. Se a importação não for concluída no tempo limite do job de três horas, você poderá dividir seus metadados em várias instâncias do Dataproc Metastore.

Cenários de erro de backup e restauração

Nesta seção, descrevemos problemas comuns de backup e restauração do metastore do Dataproc.

Não foi possível criar um novo backup para um serviço

Se já houver sete backups em um serviço, primeiro será necessário excluir manualmente um backup antes de criar um novo. É possível excluir os backups existentes na guia Backup/Restaurar.

O usuário não tem as permissões necessárias

Para fazer backup dos metadados, solicite um papel do IAM que contenha a permissão do IAM metastore.backups.create.

Para restaurar metadados, solicite um papel do IAM que contenha as permissões metastore.services.restore e metastore.backups.use do IAM.

O job falha porque o arquivo de metadados do serviço é muito grande

Se o arquivo de metadados do serviço for muito grande, o tempo limite do job pode levar mais de uma hora para concluir o processo de backup ou restauração.

Cenários de erro do cluster do Dataproc

As seções a seguir descrevem problemas comuns de cluster e autogerenciados.

Falha no anexo do cluster do Dataproc devido a versões incompatíveis

Quando você anexa um cluster do Dataproc, a imagem do Dataproc e a versão do Hive Metastore Hive precisam ser compatíveis. Verifique as seguintes páginas de controle de versão de imagem para garantir que a versão do Hive seja compatível:

Para mais informações, consulte a Lista de versões de imagem do Dataproc.

A criação do cluster do Dataproc falha devido a papéis insuficientes

Ao criar um cluster do Dataproc, a criação 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.

Isso pode ocorrer quando você tenta criar um cluster do Dataproc e anexá-lo ao metastore do Dataproc.

Para corrigir esse problema, conceda o roles/dataproc.worker à sua conta de serviço. O exemplo a seguir ilustra como fazer isso usando alguns valores de amostra.

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

A conexão com o metastore falha devido a problemas de fuso horário

Seu arquivo Hive retorna o erro The server time zone value 'CDT' is unrecognized or represents more than one time zone.

Se não for possível se conectar ao metastore do Dataproc, exclua o cluster atual e atualize o comando gcloud dataproc clusters create ou a ferramenta de automaçã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"

Solução de problemas da CLI do Google Cloud

Se ocorrer um problema em que um comando da gcloud CLI não está disponível ou se o comando apresentar comportamento diferente do que consta na documentação, tente atualizar a CLI gcloud:

gcloud components update

A seguir