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.

La creación del servicio falla 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 no existe una 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 se produce si tu clúster de Dataproc está en un proyecto diferente. tu Dataproc Metastore, pero no has otorgado 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 entrada obligatoria para Kerberos

Kerberos requiere Dataproc Metastore para iniciar conexiones con los hosts en la red del 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 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 de RFC 1918 para la creación de servicios. Para obtener una lista de rangos privados compatibles que no son RFC 1918, consulta Rangos válidos en la documentación de la red de VPC.} usa una red que pertenece a un a otro proyecto, y Compute Engine está protegido por el perímetro, el proyecto del almacén de metadatos y el proyecto de red deben estar en el mismo perímetro de servicio.

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 admitidos, 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 que está 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 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 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. La importación puede fallar si no coinciden.

Para obtener más información sobre la compatibilidad, consulta la política de 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, 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 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 debe tener el siguiente permiso de lectura para el bucket de Cloud Storage que se usa para importar:

  • En el caso de MySQL, debe 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, debe tener el permiso storage.objects.get en la 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.

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

Si tu archivo de base de datos es demasiado grande, es posible que supere 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 de trabajo de 3 horas, puedes dividir los metadatos en varias instancias de Metastore de Dataproc.

Situaciones de error de copia de seguridad y restablecimiento

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 en la pestaña Backup/Restore.

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 metastore.backups.create de IAM.

Para restablecer los metadatos, debes solicitar un rol 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 de los clústeres de Dataproc

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

La conexión 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 suficientes roles

Cuando se crea un clúster de Dataproc, la creación del clúster falla y muestra 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 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 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"

Solución de 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?