Solución de 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 experimenta problemas de conectividad o de red, verifica las situaciones en las siguientes secciones para ver si alguna de ellas es la causa del problema.

No se puede crear el servicio debido a la 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. Especificar constraints/compute.restrictVpcPeering hace que tu solicitud de creación falle con un 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 no exista la cuenta de servicio

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 de Dataproc Metastore multirregional

Cuando crees un servicio de Dataproc Metastore multirregional, 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 al de Dataproc Metastore, pero no le 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 los servicios.

Regla de firewall de entrada obligatoria para Kerberos

Kerberos requiere que Dataproc Metastore inicie conexiones con los hosts de la red de tu 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 Metastore de Dataproc.

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

Error de conexión provocado 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 de RFC 1918 para la creación de servicios. Para obtener una lista de los rangos privados compatibles que no son RFC 1918, 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 del servicio, el proyecto de metastore y el proyecto 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

Es posible que la red de VPC proporcionada se quede 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 de RFC 1918 para la creación de servicios. Para obtener una lista de los rangos privados que no son RFC 1918 compatibles, consulta Rangos válidos en la documentación de la red de VPC.

Es posible que las direcciones IP privadas que no sean RFC 1918 que se usan en Dataproc Metastore entren en conflicto con un rango de una red local conectada a la red de VPC proporcionada. Para consultar la lista de direcciones IP privadas de RFC 1918 y que no son de RFC 1918 que reservó Dataproc Metastore, haz lo siguiente:

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

Si se determina que hay un conflicto y no se puede mitigar reconfigurando la red local, borra el servicio de Metastore de Dataproc en conflicto 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 los registros de auditoría para solucionar problemas de tiempo de espera de la operación

Para solucionar problemas de tiempo de espera de la operación del servicio, usa el Explorador de registros en la consola de Google Cloud para recuperar las entradas del registro de auditoría de tu proyecto de Cloud.

En el panel del Creador 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. Seleccionar 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 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. Es posible que la importación falle si las dos no coinciden.

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

Puedes verificar 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 tablas de Hive.

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

Puedes usar Dataproc Metastore Toolkit como referencia para verificar los esquemas de metadatos de Hive correctos.

El agente de servicio o el usuario no tienen 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 al bucket de Cloud Storage que se usa para la importación:

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

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

En el caso de 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.

La tarea falla porque el archivo de la base de datos es demasiado grande

Si el archivo de tu base de datos es demasiado grande, puede tardar más que el límite de tiempo de espera de trabajo en 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 de trabajo de 3 horas, puedes dividir los metadatos en varias instancias de Metastore de Dataproc.

Situaciones de error de las copias de seguridad y los restablecimientos

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

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

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

El usuario no tiene los permisos necesarios

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

Para restablecer los metadatos, debes solicitar un rol de IAM que contenga los permisos de IAM metastore.services.restore y metastore.backups.use.

La tarea 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 de los clústeres 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 incompatibles

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 que no hay roles suficientes

Cuando creas un clúster de Dataproc, la creación 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 corregir este problema, otorga el 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 con la zona horaria

Tu archivo 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 te encuentras con un problema en el que un comando de gcloud CLI no está disponible o si el comando se comporta de forma diferente a la que se documenta, intenta actualizar gcloud CLI:

gcloud components update

¿Qué sigue?