En esta página se explican varios casos de error y los pasos para solucionarlos.
Situaciones de error de conectividad y redes
Si tu servicio tiene problemas de conectividad o de red, consulta los escenarios de las siguientes secciones para ver si alguno de ellos está causando el problema.
No se puede crear el servicio debido a una restricción para limitar el emparejamiento de VPCs
No definas la restricción de la política de organización para restringir el emparejamiento de VPCs. Si especificas constraints/compute.restrictVpcPeering
, tu solicitud de creación fallará y se mostrará un error INVALID_ARGUMENT
. Si debes definir 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 Restricciones de las políticas de la organización.
Fallo en la implementación entre proyectos cuando la cuenta de servicio no existe
Para crear un servicio de Dataproc Metastore al que se pueda acceder en una red que pertenezca a un proyecto distinto al del servicio, debes conceder roles/metastore.serviceAgent
al agente de servicio de Dataproc Metastore del proyecto de servicio (service-SERVICE_PROJECT_NUMBER@gcp-sa-metastore.iam.gserviceaccount.com
) en la política de gestión de identidades y accesos 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 Configurar una implementación entre proyectos.
No se puede crear el servicio Dataproc Metastore multirregional
Al crear 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 al de Dataproc Metastore, pero no has concedido los permisos correctos a tu proyecto.
Para resolver este error, debes conceder el permiso metastore.services.get
a la cuenta de servicio de Dataproc que se encuentra en tu proyecto de Dataproc Metastore.
Se necesita una IP privada para la conectividad de red
Dataproc Metastore solo usa IPs privadas, por lo que no se expone ninguna IP pública. Esto significa que solo las VMs de la red de nube privada virtual (VPC) proporcionada u on-premise (conectadas a través de Cloud VPN o Cloud Interconnect) pueden acceder al servicio Dataproc Metastore.
Para obtener más información, consulta Acceso al servicio.
Regla de cortafuegos de entrada obligatoria para Kerberos
Kerberos requiere que Dataproc Metastore inicie conexiones con hosts de la red de tu proyecto. Debes crear una regla de cortafuegos que permita la entrada de TCP y UDP en todos los puertos del bloque de IPs /17
que contenga la IP de Dataproc Metastore.
Para obtener más información, consulta Reglas de cortafuegos en tu KDC y Reglas de cortafuegos para tus servicios.
Error de conexión debido a recursos aprovisionados en redes de VPC compartidas
Si tu Dataproc Metastore. Si esto ocurre, Dataproc Metastore intentará reservar intervalos de direcciones IP privadas fuera de los intervalos RFC 1918 para crear el servicio. Para ver una lista de los intervalos privados no RFC 1918 admitidos, consulta Intervalos válidos en la documentación de la red de VPC.} Si el servicio usa una red que pertenece a un proyecto diferente y Compute Engine está protegido por el perímetro de servicio, el proyecto de metastore y el proyecto de red deben estar en el mismo perímetro.
Para añadir proyectos de Dataproc Metastore a un perímetro, sigue las instrucciones que se indican en Actualizar un perímetro de servicio.
Para obtener más información, consulta Controles de Servicio de VPC con Dataproc Metastore.
El intervalo de IPs asignado se ha agotado
Es posible que la red de VPC proporcionada se quede sin direcciones RFC 1918 disponibles que necesiten los servicios de Dataproc Metastore. Si esto ocurre, Dataproc Metastore intentará reservar intervalos de direcciones IP privadas fuera de los intervalos RFC 1918 para crear el servicio. Para ver una lista de los intervalos privados no RFC 1918 admitidos, consulta Intervalos 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 intervalo de una red local conectada a la red de VPC proporcionada. Para consultar la lista de direcciones IP privadas RFC 1918 y no 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 que hay un conflicto y no se puede mitigar reconfigurando la red local, elimina el servicio de Dataproc Metastore que provoca el conflicto y vuelve a crearlo después de 2 horas.
Para obtener más información, consulta el artículo Agotamiento del intervalo de direcciones IP.
Situaciones de error de tiempo de espera agotado
En los siguientes casos de error, el servicio no responde o se agota el tiempo de espera de la operación.
Usar registros de auditoría para solucionar problemas de tiempo de espera de operaciones
Para solucionar problemas de tiempo de espera de las operaciones de servicio, usa el Explorador de registros de laGoogle Cloud consola para obtener las entradas del registro de auditoría de tu proyecto de Cloud.
En el panel Generador de consultas, selecciona Recurso auditado o audited_resource
como tipo de recurso Google Cloud y, a continuación, Dataproc Metastore o metastore.googleapis.com
como servicio. Seleccionar un método es opcional.
Para obtener más información, consulta el artículo sobre cómo ver registros.
Situaciones de error de importación y exportación
En esta sección se describen los problemas habituales de importación y exportación de Dataproc Metastore.
La importación falla porque las versiones de Hive no coinciden
Cuando importes metadatos, las versiones de Hive Metastore y Dataproc Metastore deben ser compatibles. Si no coinciden, es posible que no se pueda completar la importación.
Para obtener más información sobre la compatibilidad, consulta la política de versiones.
Puedes consultar Cloud Logging para ver si se ha producido 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
Al preparar la importación para Avro, debe haber un archivo por cada tabla de Hive, aunque la tabla esté vacía. De lo contrario, la importación fallará.
Puedes usar el kit de herramientas de Dataproc Metastore como referencia para comprobar 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 en el segmento de Cloud Storage que se utilice 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 utilice para la importación.En el caso de Avro, deben tener el permiso
storage.objects.get
en el segmento de Cloud Storage que se utilice 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 cree la exportación deben tener el permiso storage.objects.create
en el segmento.
El trabajo falla porque el archivo de la base de datos es demasiado grande
Si el archivo de base de datos es demasiado grande, el proceso de importación o exportación puede tardar más que el límite de tiempo de espera de la tarea. Si la importación no se puede completar en el límite de tiempo de espera de 3 horas, puedes dividir los metadatos en varias instancias de Dataproc Metastore.
Situaciones de error de copia de seguridad y restauración
En esta sección se describen problemas habituales de copia de seguridad y restauración de Dataproc Metastore.
No se puede crear una copia de seguridad de un servicio
Si ya hay 7 copias de seguridad en un servicio, primero debes eliminar una manualmente para poder crear una nueva. Puedes eliminar copias de seguridad de la pestaña Copia de seguridad o restauración.
El usuario no tiene los permisos necesarios
Para crear una copia de seguridad de los metadatos, debes solicitar un rol de gestión de identidades y accesos que contenga el permiso metastore.backups.create
de gestión de identidades y accesos.
Para restaurar metadatos, debes solicitar un rol de gestión de identidades y accesos que contenga los permisos metastore.services.restore
y metastore.backups.use
de gestión de identidades y accesos.
El trabajo falla porque el archivo de metadatos del servicio es demasiado grande
Si el archivo de metadatos del servicio es demasiado grande, puede tardar más de una hora en completar el proceso de copia de seguridad o restauración, que es el límite de tiempo de espera de los trabajos.
Situaciones de error de clústeres de Dataproc
En las siguientes secciones se describen problemas habituales de Dataproc y de clústeres autogestionados.
No se puede adjuntar un clúster de Dataproc debido a que las versiones no coinciden
Cuando vinculas un clúster de Dataproc, la versión de imagen de Dataproc y la versión de Hive de Dataproc Metastore deben ser compatibles. Consulta las siguientes páginas de versiones de Hive para asegurarte de que la versión es compatible:
- Versiones de lanzamiento 2.0.x de Dataproc
- Versiones de lanzamiento 1.5.x de Dataproc
- Versiones de lanzamiento 1.4.x de Dataproc
Para obtener más información, consulta la lista de versiones de imágenes de Dataproc.
No se puede crear un clúster de Dataproc porque no hay suficientes roles
Al crear un clúster de Dataproc, se produce un error y aparece el siguiente mensaje:
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, concede 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
No se puede conectar al metastore debido a problemas con la zona horaria
Tu archivo Hive devuelve el error The server time zone value 'CDT' is
unrecognized or represents more than one time zone
.
Si no puedes conectarte a tu metastore desde Dataproc, debes eliminar tu clúster actual y actualizar tu comando gcloud dataproc clusters create
o tu 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"
Solucionar problemas de Google Cloud CLI
Si tienes algún problema con un comando de la CLI de gcloud que no está disponible o si el comando se comporta de forma diferente a como se describe en la documentación, prueba a actualizar la CLI de gcloud:
gcloud components update
Siguientes pasos
- Para resolver errores, consulta Mensajes de error.