Soluciona problemas

En esta página, se explican varios casos de error y los pasos para solucionarlos.

Situaciones de error de conectividad y red

Si tu servicio tiene problemas de conectividad o de red, comprueba las situaciones de las siguientes secciones para ver si alguna de ellas está causando el problema.

La creación del servicio falla debido a una restricción para restringir el intercambio de tráfico entre VPC

No establezcas la restricción de la política de la organización para restringir el intercambio de tráfico entre VPC. Si especificas constraints/compute.restrictVpcPeering, la solicitud de creación fallará y mostrará el error INVALID_ARGUMENT. Si debes establecer la restricción, usa el siguiente comando para permitir under:folders/270204312590:

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

Para obtener más información, consulta las restricciones de las políticas de la organización.

La implementación entre proyectos falla cuando es posible que la cuenta de servicio no exista

Para crear un servicio de Dataproc Metastore al que se pueda acceder en una red que pertenece a un proyecto diferente del que tiene el servicio, debes otorgar roles/metastore.serviceAgent al agente de servicio de Dataproc Metastore del proyecto del servicio (service-SERVICE_PROJECT_NUMBER@gcp-sa-metastore.iam.gserviceaccount.com) en la política de IAM del proyecto de red.

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 obtener más información, consulta Configura una implementación entre proyectos.

No se puede crear el servicio multirregión de Dataproc Metastore

Cuando creas un servicio multirregional de Dataproc Metastore, es posible que veas el siguiente error:

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 error ocurre si tu clúster de Dataproc está en un proyecto diferente que tu Dataproc Metastore, pero no otorgaste los permisos correctos a tu proyecto.

Para resolver este error, debes otorgar el permiso metastore.services.get a la cuenta de servicio de Dataproc que se encuentra en tu proyecto de Dataproc Metastore.

Se requiere una IP privada para la conectividad de red

Dataproc Metastore solo usa IP privada, por lo que no se expone ninguna IP pública. Esto significa que solo las VM de la red de nube privada virtual (VPC) proporcionada o locales (conectadas a través de Cloud VPN o Cloud Interconnect) pueden acceder el servicio de Dataproc Metastore.

Para obtener más información, consulta Acceso a servicios.

Regla de firewall de permiso de entrada obligatoria para Kerberos

Kerberos requiere Dataproc Metastore para iniciar conexiones a hosts en tu red de proyecto. Debes crear una regla de firewall que permita la entrada de TCP y UDP en todos los puertos del bloque de IP /17 que contiene la IP de Dataproc Metastore.

Si deseas obtener más información, consulta Reglas de firewall en tu KDC y Reglas de firewall para tus servicios.

Error de conexión causado por recursos aprovisionados en redes de VPC compartida

Si tu Dataproc Metastore. Si eso sucede, Dataproc Metastore intentará reservar rangos de direcciones IP privadas fuera de los rangos RFC 1918 para la creación de servicios. Para obtener una lista de los rangos privados no RFC 1918 admitidos, consulta Rangos válidos en la documentación de red de VPC.} usa una red que pertenece a un proyecto diferente y Compute Engine está protegido por el perímetro de servicio, entonces el proyecto del almacén de metadatos y el de red deben estar en el mismo perímetro.

Para agregar proyectos existentes de Dataproc Metastore al perímetro, sigue las instrucciones en Actualiza un perímetro de servicio.

Para obtener más información, consulta Controles del servicio de VPC con Dataproc Metastore.

El rango de IP asignado está agotado

La red de VPC proporcionada puede quedarse sin direcciones RFC 1918 disponibles que requieren los servicios de Dataproc Metastore. Si eso sucede, Dataproc Metastore intentará reservar rangos de direcciones IP privadas fuera de los rangos RFC 1918 para la creación de servicios. Para obtener una lista de los rangos privados no RFC 1918 admitidos, consulta Rangos válidos en la documentación de la red de VPC.

Las direcciones IP privadas que no son RFC 1918 que se usan en Dataproc Metastore pueden entrar en conflicto con un rango en una red local que está conectada a la red de VPC proporcionada. Para verificar la lista de direcciones IP privadas RFC 1918 y que no son RFC 1918 reservadas por Dataproc Metastore, haz lo siguiente:

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

Si se determina un conflicto y no se puede mitigar mediante la reconfiguración de la red local, borra el servicio ofensivo de Dataproc Metastore y vuelve a crearlo después de 2 horas.

Para obtener más información, consulta Agotamiento del rango de direcciones IP.

Situaciones de error de tiempo de espera de la operación

Las siguientes situaciones de error dan como resultado un servicio que no responde o tiempos de espera de operación.

Usa registros de auditoría para solucionar problemas de tiempos de espera de operaciones

Para solucionar problemas de tiempo de espera de las operaciones de servicio, usa el explorador de registros de la consola de Google Cloud para recuperar las entradas de registro de auditoría del proyecto de Cloud.

En el panel del compilador de consultas, selecciona Recurso auditado o audited_resource como el tipo de recurso de Google Cloud, seguido de Dataproc Metastore o metastore.googleapis.com como el servicio. La selección de un método es opcional.

Para obtener más información, consulta Visualizar los registros.

Situaciones de error de importación y exportación

En esta sección, se describen los problemas comunes de importación y exportación de Dataproc Metastore.

La importación falla porque las versiones de Hive no coinciden

Cuando importas metadatos, las versiones del almacén de metadatos de Hive y de Dataproc Metastore deben ser compatibles. Tu importación puede fallar si las dos no coinciden.

Para obtener más información sobre la compatibilidad, consulta la política de la versión.

Puedes consultar Cloud Logging para ver si encontraste este error. El siguiente mensaje es un ejemplo de este error.

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

La importación falla porque faltan archivos de tabla de Hive

Cuando prepares la importación para Avro, debería haber un archivo para cada tabla de Hive, incluso si la tabla está vacía; de lo contrario, la importación fallará.

Puedes usar el kit de herramientas de Dataproc Metastore como referencia para verificar los esquemas de metadatos de Hive correctos.

El usuario o agente de servicio no tiene los permisos necesarios

El agente de servicio de Dataproc Metastore (service-CUSTOMER_PROJECT_NUMBER@gcp-sa-metastore.iam.gserviceaccount.com) y el usuario que importa los metadatos deben tener el siguiente permiso de lectura en el bucket de Cloud Storage que se usa para la importación:

  • En el caso de MySQL, deben tener el permiso storage.objects.get en el objeto de Cloud Storage (archivo de volcado de SQL) que se usa para la importación.

  • En Avro, deben tener el permiso storage.objects.get en el bucket de Cloud Storage que se usa para la importación.

Para las exportaciones, el agente de servicio de Dataproc Metastore (service-CUSTOMER_PROJECT_NUMBER@gcp-sa-metastore.iam.gserviceaccount.com) y el usuario que crea la exportación deben tener el permiso storage.objects.create en el bucket.

El trabajo falla porque el archivo de base de datos es demasiado grande

Si el archivo de base de datos es demasiado grande, puede tardar más que el límite de tiempo de espera del trabajo para completar el proceso de importación o exportación. Si la importación no se puede completar dentro del límite de tiempo de espera del trabajo de 3 horas, puedes dividir tus metadatos en varias instancias de Dataproc Metastore.

Situaciones de error relacionadas con la copia de seguridad y el restablecimiento

En esta sección, se describen los problemas comunes de copia de seguridad y restablecimiento de Dataproc Metastore.

No se pudo crear una copia de seguridad nueva para un servicio

Si ya hay 7 copias de seguridad en un servicio, primero debes borrar una copia de seguridad de forma manual antes de crear una nueva. Puedes borrar las copias de seguridad existentes desde la pestaña Copia de seguridad/restablecimiento.

El usuario no tiene los permisos necesarios

Para crear una copia de seguridad de los metadatos, debes solicitar una función de IAM que contenga el permiso de IAM metastore.backups.create.

Para restablecer los metadatos, debes solicitar una función de IAM que contenga los permisos de IAM metastore.services.restore y metastore.backups.use.

El trabajo falla porque el archivo de metadatos del servicio es demasiado grande

Si el archivo de metadatos de servicio es demasiado grande, puede tardar más que el límite de tiempo de espera del trabajo de una hora en completar el proceso de copia de seguridad o restablecimiento.

Situaciones de error del clúster de Dataproc

En las siguientes secciones, se describen problemas comunes de Dataproc y de clústeres autoadministrados.

El adjunto del clúster de Dataproc falla debido a versiones que no coinciden

Cuando adjuntas un clúster de Dataproc, la imagen de Dataproc y la versión de Hive de Dataproc Metastore deben ser compatibles. Consulta las siguientes páginas de control de versiones de imágenes para asegurarte de que la versión de Hive sea compatible:

Para obtener más información, consulta la Lista de versiones con imágenes de Dataproc.

La creación del clúster de Dataproc falla debido a funciones insuficientes

Cuando se crea un clúster de Dataproc, la creación del clúster falla con el siguiente mensaje de error:

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.

Esto puede ocurrir cuando intentas crear un clúster de Dataproc y adjuntarlo a tu Dataproc Metastore.

Para solucionar este problema, otorga el permiso roles/dataproc.worker a tu cuenta de servicio. En el siguiente ejemplo, se muestra cómo hacerlo, con algunos valores de muestra.

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

La conexión al almacén de metadatos falla debido a problemas de zona horaria

El archivo de Hive muestra el error The server time zone value 'CDT' is unrecognized or represents more than one time zone.

Si no puedes conectarte al almacén de metadatos desde Dataproc, debes borrar el clúster actual y actualizar el comando de gcloud dataproc clusters create o la herramienta de automatización para incluir el siguiente parámetro de zona horaria:

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

Soluciona problemas de Google Cloud CLI

Si encuentras un problema en el que un comando de gcloud CLI no está disponible o si el comando se comporta de forma diferente al que se documenta, intenta actualizar lgcloud CLIud:

gcloud components update

¿Qué sigue?